keycloak
クラス | 静的公開メンバ関数 | 静的公開変数類 | 静的非公開変数類 | 全メンバ一覧
org.keycloak.models.sessions.infinispan.util.KeycloakMarshallUtil クラス
org.keycloak.models.sessions.infinispan.util.KeycloakMarshallUtil 連携図
Collaboration graph

クラス

class  ConcurrentHashMapBuilder
 
class  HashSetBuilder
 
class  StringExternalizer
 

静的公開メンバ関数

static< K, V > void writeMap (Map< K, V > map, Externalizer< K > keyExternalizer, Externalizer< V > valueExternalizer, ObjectOutput output) throws IOException
 
static< K, V, TYPED_MAP extends Map< K, V > TYPED_MAP readMap (ObjectInput input, Externalizer< K > keyExternalizer, Externalizer< V > valueExternalizer, MarshallUtil.MapBuilder< K, V, TYPED_MAP > mapBuilder) throws IOException, ClassNotFoundException
 
static< E > void writeCollection (Collection< E > col, Externalizer< E > valueExternalizer, ObjectOutput output) throws IOException
 
static< E, T extends Collection< E > T readCollection (ObjectInput input, Externalizer< E > valueExternalizer, MarshallUtil.CollectionBuilder< E, T > colBuilder) throws ClassNotFoundException, IOException
 
static void marshall (Integer obj, ObjectOutput output) throws IOException
 
static Integer unmarshallInteger (ObjectInput input) throws IOException
 

静的公開変数類

static final Externalizer< String > STRING_EXT = new StringExternalizer()
 
static final Externalizer< UUID > UUID_EXT
 

静的非公開変数類

static final Logger log = Logger.getLogger(KeycloakMarshallUtil.class)
 

詳解

Helper to optimize marshalling/unmarhsalling of some types

著者
Marek Posolda

関数詳解

◆ marshall()

static void org.keycloak.models.sessions.infinispan.util.KeycloakMarshallUtil.marshall ( Integer  obj,
ObjectOutput  output 
) throws IOException
inlinestatic

Marshalls the given object with support of

null

values.

引数
objObject to marshall (can be
null
)
outputOutput stream
例外
IOException
148  {
149  if (obj == null) {
150  output.writeBoolean(false);
151  } else {
152  output.writeBoolean(true);
153  output.writeInt(obj);
154  }
155  }

◆ readCollection()

static <E, T extends Collection<E> T org.keycloak.models.sessions.infinispan.util.KeycloakMarshallUtil.readCollection ( ObjectInput  input,
Externalizer< E >  valueExternalizer,
MarshallUtil.CollectionBuilder< E, T >  colBuilder 
) throws ClassNotFoundException, IOException
inlinestatic
123  {
124  byte b = input.readByte();
125  if (b == 0) {
126  return null;
127  } else {
128 
129  int size = input.readInt();
130 
131  T col = colBuilder.build(size);
132 
133  for (int i=0 ; i<size ; i++) {
134  E value = valueExternalizer.readObject(input);
135  col.add(value);
136  }
137 
138  return col;
139  }
140  }

◆ readMap()

static <K, V, TYPED_MAP extends Map<K, V> TYPED_MAP org.keycloak.models.sessions.infinispan.util.KeycloakMarshallUtil.readMap ( ObjectInput  input,
Externalizer< K >  keyExternalizer,
Externalizer< V >  valueExternalizer,
MarshallUtil.MapBuilder< K, V, TYPED_MAP >  mapBuilder 
) throws IOException, ClassNotFoundException
inlinestatic
82  {
83  byte b = input.readByte();
84  if (b == 0) {
85  return null;
86  } else {
87 
88  int size = input.readInt();
89 
90  TYPED_MAP map = mapBuilder.build(size);
91 
92  for (int i=0 ; i<size ; i++) {
93  K key = keyExternalizer.readObject(input);
94  V value = valueExternalizer.readObject(input);
95 
96  map.put(key, value);
97  }
98 
99  return map;
100  }
101  }

◆ unmarshallInteger()

static Integer org.keycloak.models.sessions.infinispan.util.KeycloakMarshallUtil.unmarshallInteger ( ObjectInput  input) throws IOException
inlinestatic

Unmarshals the given object into

Integer

instance.

引数
inputInput stream
戻り値
Unmarshalled value (can be
null
)
例外
IOException
163  {
164  boolean isSet = input.readBoolean();
165  return isSet ? input.readInt() : null;
166  }

◆ writeCollection()

static <E> void org.keycloak.models.sessions.infinispan.util.KeycloakMarshallUtil.writeCollection ( Collection< E >  col,
Externalizer< E >  valueExternalizer,
ObjectOutput  output 
) throws IOException
inlinestatic
105  {
106  if (col == null) {
107  output.writeByte(0);
108  } else {
109  output.writeByte(1);
110 
111  // Copy the collection as it can be updated concurrently
112  Collection<E> copy = new LinkedList<>(col);
113 
114  output.writeInt(copy.size());
115 
116  for (E entry : copy) {
117  valueExternalizer.writeObject(output, entry);
118  }
119  }
120  }

◆ writeMap()

static <K, V> void org.keycloak.models.sessions.infinispan.util.KeycloakMarshallUtil.writeMap ( Map< K, V >  map,
Externalizer< K >  keyExternalizer,
Externalizer< V >  valueExternalizer,
ObjectOutput  output 
) throws IOException
inlinestatic
61  {
62  if (map == null) {
63  output.writeByte(0);
64  } else {
65  output.writeByte(1);
66 
67  // Copy the map as it can be updated concurrently
68  Map<K, V> copy = new HashMap<>(map);
69  //Map<K, V> copy = map;
70 
71  output.writeInt(copy.size());
72 
73  for (Map.Entry<K, V> entry : copy.entrySet()) {
74  keyExternalizer.writeObject(output, entry.getKey());
75  valueExternalizer.writeObject(output, entry.getValue());
76  }
77  }
78  }

メンバ詳解

◆ log

final Logger org.keycloak.models.sessions.infinispan.util.KeycloakMarshallUtil.log = Logger.getLogger(KeycloakMarshallUtil.class)
staticprivate

◆ STRING_EXT

final Externalizer<String> org.keycloak.models.sessions.infinispan.util.KeycloakMarshallUtil.STRING_EXT = new StringExternalizer()
static

◆ UUID_EXT

final Externalizer<UUID> org.keycloak.models.sessions.infinispan.util.KeycloakMarshallUtil.UUID_EXT
static
初期値:
= new Externalizer<UUID>() {
@Override
public void writeObject(ObjectOutput output, UUID uuid) throws IOException {
MarshallUtil.marshallUUID(uuid, output, true);
}
@Override
public UUID readObject(ObjectInput input) throws IOException, ClassNotFoundException {
return MarshallUtil.unmarshallUUID(input, true);
}
}

このクラス詳解は次のファイルから抽出されました: