/** * Returns {@link FieldPath} equivalent of the specified {@link SchemaPath}. * * @param schemaPath {@link SchemaPath} instance that should be converted * @return {@link FieldPath} equivalent of the specified {@link SchemaPath}. */ public static FieldPath schemaPathToFieldPath(SchemaPath schemaPath) { Deque<PathSegment> pathSegments = Queues.newArrayDeque(); PathSegment pathSegment = schemaPath.getRootSegment(); while (pathSegment != null) { pathSegments.push(pathSegment); pathSegment = pathSegment.getChild(); } FieldSegment child = null; while (!pathSegments.isEmpty()) { pathSegment = pathSegments.pop(); if (pathSegment.isNamed()) { child = new FieldSegment.NameSegment(((PathSegment.NameSegment) pathSegment).getPath(), child, false); } else { child = new FieldSegment.IndexSegment(String.valueOf(((PathSegment.ArraySegment) pathSegment).getIndex()), child); } } return new FieldPath((FieldSegment.NameSegment) child); } }
@Override protected Queue<Event> initialValue() { return Queues.newArrayDeque(); } };
/** * Returns {@link FieldPath} equivalent of the specified {@link SchemaPath}. * * @param schemaPath {@link SchemaPath} instance that should be converted * @return {@link FieldPath} equivalent of the specified {@link SchemaPath}. */ public static FieldPath schemaPathToFieldPath(SchemaPath schemaPath) { Deque<PathSegment> pathSegments = Queues.newArrayDeque(); PathSegment pathSegment = schemaPath.getRootSegment(); while (pathSegment != null) { pathSegments.push(pathSegment); pathSegment = pathSegment.getChild(); } FieldSegment child = null; while (!pathSegments.isEmpty()) { pathSegment = pathSegments.pop(); if (pathSegment.isNamed()) { child = new FieldSegment.NameSegment(((PathSegment.NameSegment) pathSegment).getPath(), child, false); } else { child = new FieldSegment.IndexSegment(String.valueOf(((PathSegment.ArraySegment) pathSegment).getIndex()), child); } } return new FieldPath((FieldSegment.NameSegment) child); } }