use of org.apache.ignite.internal.util.typedef.internal.SB in project ignite by apache.
the class GridifyUtils method collectionToParameter.
/**
* Converts {@link Collection} back to object applied for method.
*
* @param paramCls Method parameter type.
* @param data Collection of data elements.
* @return Object applied for method.
*/
@SuppressWarnings({ "unchecked" })
@Nullable
public static Object collectionToParameter(Class<?> paramCls, Collection data) {
if (Collection.class.equals(paramCls))
return data;
else if (Iterable.class.equals(paramCls))
return data;
else if (Iterator.class.equals(paramCls))
return new IteratorAdapter(data);
else if (Enumeration.class.equals(paramCls))
return new EnumerationAdapter(data);
else if (Set.class.equals(paramCls))
return new HashSet(data);
else if (List.class.equals(paramCls))
return new LinkedList(data);
else if (Queue.class.equals(paramCls))
return new LinkedList(data);
else if (CharSequence.class.equals(paramCls)) {
SB sb = new SB();
for (Object obj : data) {
assert obj instanceof Character;
sb.a(obj);
}
return sb;
} else if (paramCls.isArray()) {
Class<?> componentType = paramCls.getComponentType();
Object arr = Array.newInstance(componentType, data.size());
int i = 0;
for (Object element : data) {
Array.set(arr, i, element);
i++;
}
return arr;
} else // Note, that parameter class must contain default non-param constructor.
if (Collection.class.isAssignableFrom(paramCls)) {
try {
Collection col = (Collection) paramCls.newInstance();
for (Object dataObj : data) {
col.add(dataObj);
}
return col;
} catch (InstantiationException | IllegalAccessException ignored) {
// No-op.
}
}
return null;
}
use of org.apache.ignite.internal.util.typedef.internal.SB in project ignite by apache.
the class GridUnsafeDataInput method readLine.
/** {@inheritDoc} */
@Override
public String readLine() throws IOException {
SB sb = new SB();
int b;
while ((b = read()) >= 0) {
char c = (char) b;
switch(c) {
case '\n':
return sb.toString();
case '\r':
b = read();
if (b < 0 || b == '\n')
return sb.toString();
else
sb.a((char) b);
break;
default:
sb.a(c);
}
}
return sb.toString();
}
use of org.apache.ignite.internal.util.typedef.internal.SB in project ignite by apache.
the class IgniteUtils method makeCacheMBeanName.
/**
* Constructs JMX object name with given properties.
* Map with ordered {@code groups} used for proper object name construction.
*
* @param igniteInstanceName Ignite instance name.
* @param cacheName Name of the cache.
* @param name Name of mbean.
* @return JMX object name.
* @throws MalformedObjectNameException Thrown in case of any errors.
*/
public static ObjectName makeCacheMBeanName(@Nullable String igniteInstanceName, @Nullable String cacheName, String name) throws MalformedObjectNameException {
SB sb = new SB(JMX_DOMAIN + ':');
appendClassLoaderHash(sb);
appendJvmId(sb);
if (igniteInstanceName != null && !igniteInstanceName.isEmpty())
sb.a("igniteInstanceName=").a(igniteInstanceName).a(',');
cacheName = maskName(cacheName);
if (!MBEAN_CACHE_NAME_PATTERN.matcher(cacheName).matches())
sb.a("group=").a('\"').a(cacheName).a('\"').a(',');
else
sb.a("group=").a(cacheName).a(',');
sb.a("name=").a(name);
return new ObjectName(sb.toString());
}
use of org.apache.ignite.internal.util.typedef.internal.SB in project ignite by apache.
the class IgniteUtils method byteArray2String.
/**
* Converts byte array to formatted string. If calling:
* <pre name="code" class="java">
* ...
* byte[] data = {10, 20, 30, 40, 50, 60, 70, 80, 90};
*
* U.byteArray2String(data, "0x%02X", ",0x%02X")
* ...
* </pre>
* the result will be:
* <pre name="code" class="java">
* ...
* 0x0A, 0x14, 0x1E, 0x28, 0x32, 0x3C, 0x46, 0x50, 0x5A
* ...
* </pre>
*
* @param arr Array of byte.
* @param hdrFmt C-style string format for the first element.
* @param bodyFmt C-style string format for second and following elements, if any.
* @return String with converted bytes.
*/
public static String byteArray2String(byte[] arr, String hdrFmt, String bodyFmt) {
assert arr != null;
assert hdrFmt != null;
assert bodyFmt != null;
SB sb = new SB();
sb.a('{');
boolean first = true;
for (byte b : arr) if (first) {
sb.a(String.format(hdrFmt, b));
first = false;
} else
sb.a(String.format(bodyFmt, b));
sb.a('}');
return sb.toString();
}
use of org.apache.ignite.internal.util.typedef.internal.SB in project ignite by apache.
the class GridOffHeapSnapTreeMap method print.
/**
* @return String representation of structure.
*/
String print() {
long root = root();
if (root == 0)
return "Empty tree";
ArrayList<SB> s = new ArrayList<SB>(height(root) + 1);
print(root, s, 0, 0);
SB res = new SB();
for (SB sb : s) res.a(sb).a('\n');
return '\n' + res.toString();
}
Aggregations