Convert PydevConsoleRunnerFactory class to Kotlin
[idea/community.git] / tools / launcher-generator / src / com / pme / util / BitsUtil.java
1 /*
2  * Copyright 2006 ProductiveMe Inc.
3  * Copyright 2013-2018 JetBrains s.r.o.
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17
18 package com.pme.util;
19
20 import java.io.DataInput;
21 import java.io.IOException;
22
23 /**
24  * @author Sergey Zhulin
25  * Date: Mar 30, 2006
26  * Time: 7:10:10 PM
27  */
28 public class BitsUtil {
29   public static int revertBytesOfShort( short shortValue ){
30     return ((shortValue << 8) & 0xff00) + ((shortValue >> 8) & 0xff);
31   }
32
33   public static long revertBytesOfInt( int intValue ){
34     long result = (intValue & 0x000000ff);
35     result <<= 24;
36     result += ((intValue & 0x0000ff00) << 8) + ((intValue & 0x00ff0000) >> 8) + ((intValue >> 24) & 0xff);
37     return result;
38   }
39
40   public static long revertBytesOfLong(long longValue) {
41     long ms = revertBytesOfInt((int) (longValue >> 32));
42     long ls = revertBytesOfInt((int) longValue);
43     return ms | ls << 32;
44   }
45
46   public static int unsignedByte( byte byteValue ){
47     int result = byteValue;
48     return (result & 0xff);
49   }
50   private static String toHexString( long value, int size ){
51     String strValue = Long.toHexString( value );
52     if ( strValue.length() > size ){
53       strValue = strValue.substring( strValue.length() - size );
54     }
55     StringBuffer buffer = new StringBuffer( strValue.length() + 1 + size );
56     buffer.append( "0x" );
57     int dif = size - strValue.length();
58     for ( int i = 0; i < dif; ++i ){
59       buffer.append( "0" );
60     }
61     buffer.append( strValue );
62     return buffer.toString();
63   }
64
65   public static String intToHexString( long value ){
66     return toHexString( value, 8 );
67   }
68   public static String shortToHexString( int value ){
69     return toHexString( value, 4 );
70   }
71   public static String byteToHexString( int value ){
72     return toHexString( value, 2 );
73   }
74
75   public static char readChar(DataInput stream) throws IOException {
76     int b1 = stream.readByte();
77     int b2 = stream.readByte();
78     return (char) (b1 + (b2 << 8));
79
80   }
81 }