/****************************************************** * The following operations are the implementations of the operations * defined for this classifier. *******************************************************/ public String getFirst() { String result = ""; if (getNames().size() > 0) result = (String) getNames().get(0); return result; }
/** * @return */ public boolean isSingleName() { return getNames().size() == 1; }
@Override public int compareTo(OJPathName o) { List<String> myNames = getNames(); List<String> otherNames = o.getNames(); for (int i = 0; i < myNames.size(); i++) { if (otherNames.size() > i) { int compareTo = otherNames.get(i).compareTo(myNames.get(i)); if (compareTo != 0) { return compareTo; } } else { return 1;// Longest is greater } } if (myNames.size() < otherNames.size()) { return -1;// Shortest is less } return 0; }
public String toString() { return JavaUtil.collectionToString(getNames(), "."); }
public String getLast() { String result = ""; if (getNames().size() > 0) { result = (String) getNames().get(getNames().size() - 1); } StringBuilder pathInfo = new StringBuilder(); if (!this.generics.isEmpty()) { boolean first = true; pathInfo.append("<"); for (OJPathName pathName : this.generics) { if (first) { first = false; } else { pathInfo.append(","); } pathInfo.append(pathName.getLast()); } pathInfo.append(">"); result += pathInfo.toString(); } return result; }
public String toJavaString() { StringBuilder pathInfo = new StringBuilder(); boolean first = true; Iterator it = getNames().iterator(); while (it.hasNext()) { if (first) { first = false; } else { pathInfo.append("."); } String elem = (String) it.next(); pathInfo.append(elem); } if (!this.generics.isEmpty()) { pathInfo.append("<"); first = true; for (OJPathName pathName : this.generics) { if (first) { first = false; } else { pathInfo.append(","); } pathInfo.append(pathName.toJavaString()); } pathInfo.append(">"); } return pathInfo.toString(); }
/** * @return */ public OJPathName getCopy() { OJPathName result = new OJPathName(); result.setNames(new ArrayList<String>(this.getNames())); result.generics = new ArrayList<OJPathName>(this.getGenerics()); return result; }
/** Implements the user defined operation '+ equals( other: OJPathName ) : Boolean' * * @param other */ public boolean equals(OJPathName other) { return (Stdlib.sequenceEquals(this.getNames(), other.getNames())); }
public OJPathName getDeepCopy() { OJPathName result = new OJPathName(); result.setNames(new ArrayList(this.getNames())); List<OJPathName> elementTypes = getElementTypes(); for (OJPathName elementType : elementTypes) { OJPathName elementTypeCopy = elementType.getDeepCopy(); if (elementType.getLast().contains("extends")) { System.out.println(); } result.addToElementTypes(elementTypeCopy); } return result; }
public OJPackage findOrCreatePackage(OJPathName packageName){ OJPackage parent = findLocalPackage(packageName.getFirst()); if(parent == null){ parent = new OJPackage(packageName.getFirst()); addToRootPackages(parent); } OJPackage child = parent; Iterator<String> iter = packageName.getNames().subList(1, packageName.getNames().size()).iterator(); while(iter.hasNext()){ String name = iter.next(); child = (OJPackage) parent.findPackage(new OJPathName(name)); if(child == null){ child = new OJPackage(name); parent.addToSubpackages(child); } parent = child; } return child; } }