/** * Parse GGFS mode from string. * * @param ss Array of source strings. * @param ix Index of array item to parse. * @return Parsed GGFS mode or {@code null} if string is empty. */ private GridGgfsMode parseGgfsMode(String[] ss, int ix) { if (ss.length <= ix) return null; else { String s = ss[ix]; return s.isEmpty() ? null : GridGgfsMode.valueOf(s); } }
/** {@inheritDoc} */ @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { ggfsName = U.readString(in); blockSize = in.readInt(); grpSize = in.readInt(); metaCacheName = U.readString(in); dataCacheName = U.readString(in); dfltMode = GridGgfsMode.fromOrdinal(U.readEnumOrdinal0(in)); fragmentizerEnabled = in.readBoolean(); if (in.readBoolean()) { int size = in.readInt(); pathModes = new HashMap<>(size, 1.0f); for (int i = 0; i < size; i++) pathModes.put(U.readString(in), GridGgfsMode.fromOrdinal(U.readEnumOrdinal0(in))); } } }
/** * @param path Path. * @return Set of all modes that children paths could have. */ public Set<GridGgfsMode> resolveChildrenModes(GridGgfsPath path) { assert path != null; if (modes == null) return Collections.singleton(dfltMode); else { Set<GridGgfsMode> children = childrenModesCache.get(path); if (children == null) { children = new HashSet<>(GridGgfsMode.values().length, 1.0f); GridGgfsMode pathDefault = dfltMode; for (T2<GridGgfsPath, GridGgfsMode> child : modes) { if (startsWith(path, child.getKey())) { pathDefault = child.getValue(); break; } else if (startsWith(child.getKey(), path)) children.add(child.getValue()); } children.add(pathDefault); childrenModesCache.put(path, children); } return children; } }
/** {@inheritDoc} */ @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { ggfsName = U.readString(in); blockSize = in.readInt(); grpSize = in.readInt(); metaCacheName = U.readString(in); dataCacheName = U.readString(in); dfltMode = GridGgfsMode.fromOrdinal(U.readEnumOrdinal0(in)); fragmentizerEnabled = in.readBoolean(); if (in.readBoolean()) { int size = in.readInt(); pathModes = new HashMap<>(size, 1.0f); for (int i = 0; i < size; i++) pathModes.put(U.readString(in), GridGgfsMode.fromOrdinal(U.readEnumOrdinal0(in))); } } }
/** * @param path Path. * @return Set of all modes that children paths could have. */ public Set<GridGgfsMode> resolveChildrenModes(GridGgfsPath path) { assert path != null; if (modes == null) return Collections.singleton(dfltMode); else { Set<GridGgfsMode> children = childrenModesCache.get(path); if (children == null) { children = new HashSet<>(GridGgfsMode.values().length, 1.0f); GridGgfsMode pathDefault = dfltMode; for (T2<GridGgfsPath, GridGgfsMode> child : modes) { if (startsWith(path, child.getKey())) { pathDefault = child.getValue(); break; } else if (startsWith(child.getKey(), path)) children.add(child.getValue()); } children.add(pathDefault); childrenModesCache.put(path, children); } return children; } }
/** {@inheritDoc} */ @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { props = U.readStringMap(in); dfltMode = GridGgfsMode.fromOrdinal(U.readEnumOrdinal0(in)); if (in.readBoolean()) { int size = in.readInt(); pathModes = new ArrayList<>(size); for (int i = 0; i < size; i++) { GridGgfsPath path = new GridGgfsPath(); path.readExternal(in); T2<GridGgfsPath, GridGgfsMode> entry = new T2<>(path, GridGgfsMode.fromOrdinal(U.readEnumOrdinal0(in))); pathModes.add(entry); } } } }
/** * Parse GGFS mode from string. * * @param ss Array of source strings. * @param ix Index of array item to parse. * @return Parsed GGFS mode or {@code null} if string is empty. */ private GridGgfsMode parseGgfsMode(String[] ss, int ix) { if (ss.length <= ix) return null; else { String s = ss[ix]; return s.isEmpty() ? null : GridGgfsMode.valueOf(s); } }
/** {@inheritDoc} */ @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { props = U.readStringMap(in); dfltMode = GridGgfsMode.fromOrdinal(U.readEnumOrdinal0(in)); if (in.readBoolean()) { int size = in.readInt(); pathModes = new ArrayList<>(size); for (int i = 0; i < size; i++) { GridGgfsPath path = new GridGgfsPath(); path.readExternal(in); T2<GridGgfsPath, GridGgfsMode> entry = new T2<>(path, GridGgfsMode.fromOrdinal(U.readEnumOrdinal0(in))); pathModes.add(entry); } } } }