/* ************************************************************************
#
# DivConq
#
# http://divconq.com/
#
# Copyright:
# Copyright 2014 eTimeline, LLC. All rights reserved.
#
# License:
# See the license.txt file in the project's top-level directory for details.
#
# Authors:
# * Andy White
#
************************************************************************ */
package divconq.struct;
import divconq.lang.op.OperationResult;
import divconq.util.StringUtil;
public class PathPart {
public static PathPart[] parse(OperationResult log, String path) {
if (StringUtil.isEmpty(path))
return null;
String[] sparts = path.split(path.contains("/") ? "\\/" : "\\.");
PathPart[] parts = new PathPart[sparts.length];
for (int i = 0; i < sparts.length; i++) {
parts[i] = new PathPart(log, sparts[i]);
}
return parts;
}
protected String field = null;
protected int index = 0;
protected OperationResult log = null; // not required, do not expect it to be non null
public PathPart(OperationResult log, String field) {
this.log = log;
if (StringUtil.isDataInteger(field))
this.index = (int)StringUtil.parseInt(field, 0);
else
this.field = field;
}
public PathPart(int index) {
this.index = index;
}
public String getField() {
return this.field;
}
public int getIndex() {
return this.index;
}
public boolean isField() {
return (this.field != null);
}
public OperationResult getLog() {
return this.log;
}
}