/** * A simple is a path where there are no repeated elements outside the lowest level of the path. * @return Whether this path is a simple path. */ public boolean isSimplePath() { PathSegment seg = rootSegment; while (seg != null) { if (seg.isArray() && !seg.isLastPath()) { return false; } seg = seg.getChild(); } return true; }
/** * Traverses path segment to extract named segments, omits all other segments (i.e. array). * Order of named segments appearance will be preserved. * * @param currentSegment current segment * @param resultingSegment resulting segment * @return named segment */ private NameSegment getUnIndexedNameSegment(PathSegment currentSegment, NameSegment resultingSegment) { if (!currentSegment.isLastPath()) { resultingSegment = getUnIndexedNameSegment(currentSegment.getChild(), resultingSegment); } if (currentSegment.isNamed()) { String path = currentSegment.getNameSegment().getPath(); return new NameSegment(path, resultingSegment); } return resultingSegment; }
if (!(isRowKey || (!field.getRootSegment().isLastPath() && field.getRootSegment().getChild().isLastPath() && field.getRootSegment().getChild().isNamed())
if (!(isRowKey || (!field.getRootSegment().isLastPath() && field.getRootSegment().getChild().isLastPath() && field.getRootSegment().getChild().isNamed())
private boolean isNullReaderLikely(PathSegment seg, boolean complexOrRepeated) { while (seg != null) { if (seg.isArray() && !seg.isLastPath()) { return true; } if (seg.isLastPath() && complexOrRepeated) { return true; } seg = seg.getChild(); } return false; }
/** * A simple is a path where there are no repeated elements outside the lowest level of the path. * @return Whether this path is a simple path. */ public boolean isSimplePath() { PathSegment seg = rootSegment; while (seg != null) { if (seg.isArray() && !seg.isLastPath()) { return false; } seg = seg.getChild(); } return true; }
@Override public void parseSegment(PathSegment pathSeg) { if (pathSeg.isLastPath()) { parseLeaf((NameSegment) pathSeg); } else if (pathSeg.getChild().isArray()) { parseArray((NameSegment) pathSeg); } else { parseInternal((NameSegment) pathSeg); } }
/** * Traverses path segment to extract named segments, omits all other segments (i.e. array). * Order of named segments appearance will be preserved. * * @param currentSegment current segment * @param resultingSegment resulting segment * @return named segment */ private NameSegment getUnIndexedNameSegment(PathSegment currentSegment, NameSegment resultingSegment) { if (!currentSegment.isLastPath()) { resultingSegment = getUnIndexedNameSegment(currentSegment.getChild(), resultingSegment); } if (currentSegment.isNamed()) { String path = currentSegment.getNameSegment().getPath(); return new NameSegment(path, resultingSegment); } return resultingSegment; }
private void add(PathSegment segment){ if(segment.isNamed()){ boolean lastPath = segment.isLastPath(); FieldSelection child = addChild(segment.getNameSegment().getPath()); if (lastPath) { child.setAlwaysValid(); } if (!lastPath && !child.isAlwaysValid()) { child.add(segment.getChild()); } } }
if (!(isRowKey || (!field.getRootSegment().isLastPath() && field.getRootSegment().getChild().isLastPath() && field.getRootSegment().getChild().isNamed())
if (!(isRowKey || (!field.getRootSegment().isLastPath() && field.getRootSegment().getChild().isLastPath() && field.getRootSegment().getChild().isNamed())
public static TypedFieldId getFieldIdIfMatches(ValueVector vector, TypedFieldId.Builder builder, boolean addToBreadCrumb, PathSegment seg) { if (vector instanceof RepeatedMapVector && seg != null && seg.isArray() && !seg.isLastPath()) { if (addToBreadCrumb) { addToBreadCrumb = false; if (seg.isLastPath()) { MajorType type; if (vector instanceof AbstractContainerVector) { if (seg.isLastPath()) { return builder.build(); } else { PathSegment child = seg.getChild(); if (child.isLastPath() && child.isArray()) { if (addToBreadCrumb) { builder.remainder(child);
if (seg.isLastPath()) { builder.finalType(majorType); return builder.build(); builder.addId(id); builder.finalType(vector.getField().getType()); if (seg.isLastPath()) { return builder.build(); } else { PathSegment child = seg.getChild(); if (child.isArray() && child.isLastPath()) { builder.remainder(child); builder.withIndex();
if (seg.isLastPath() && !complex && !repeated && !listVector) { break;