public List getValues() { List result = new ArrayList(); RDFList l = this; while (l != null && l.getFirst() != null) { result.add(l.getFirst()); l = l.getRest(); } return result; }
public boolean isClosed() { RDFList rest = getRest(); if (rest == null) { return false; } else if (rest.equals(getOWLModel().getRDFNil())) { return true; } else { return rest.isClosed(); } }
public int[] getSourceColumns(Resource resource) { if (_model.contains(resource, Vertere.source_column)) { Statement sourceColumn = _model.getProperty(resource, Vertere.source_column); return new int[] {sourceColumn.getInt()}; } else if (_model.contains(resource, Vertere.source_columns)) { Statement sourceColumns = _model.getProperty(resource, Vertere.source_columns); Resource listResource = sourceColumns.getResource(); RDFList list = listResource.as(RDFList.class); List<RDFNode> javalist = list.asJavaList(); int[] sourceColumnNumbers = new int[javalist.size()]; for (int i = 0; i < javalist.size(); i++) { RDFNode node = javalist.get(i); Literal value = node.asLiteral(); sourceColumnNumbers[i] = value.getInt(); } return sourceColumnNumbers; } else { return new int[0]; } }
public static void removeListValue( RDFResource resource, RDFProperty property, RDFList li, int index) { if (index == 0) { RDFList rest = li.getRest(); if (li.getOWLModel().getRDFNil().equals(rest)) { rest = null; } li.setRest(null); resource.setPropertyValue(property, rest); li.delete(); } else { RDFList pred = null; while (index > 0) { index--; pred = li; li = li.getRest(); } RDFList rest = li.getRest(); li.setRest(null); pred.setRest(rest); li.delete(); } }
public boolean equalsStructurally(RDFObject object) { if (object instanceof RDFList) { RDFList list = (RDFList) object; if (getValues().size() == list.getValues().size()) { Iterator it = getValues().iterator(); for (Iterator listIt = list.getValues().iterator(); listIt.hasNext(); ) { OWLModel model = getOWLModel(); RDFObject curListObj = model.asRDFObject(listIt.next()); RDFObject curThisObj = model.asRDFObject(it.next()); if (curListObj != null && curThisObj != null) { if (curListObj.equalsStructurally(curThisObj) == false) { return false; } } else { if (curListObj != curThisObj) { return false; } } } return true; } } return false; }
public void append(Object value) { boolean done = false; RDFList current = this; while (!done) { if (current.getFirst() == null) { current.setFirst(value); current.setRest(getOWLModel().getRDFNil()); done = true; } else if (current.getRest() == null || getOWLModel().getRDFNil().equals(current.getRest())) { RDFSNamedClass listClass = (RDFSNamedClass) getDirectType(); RDFList newRest = (RDFList) listClass.createAnonymousInstance(); newRest.setFirst(value); newRest.setRest(getOWLModel().getRDFNil()); current.setRest(newRest); done = true; } else { current = current.getRest(); // Recursion into tail } } }
public static void removeListValue(RDFResource resource, RDFProperty property, Object value) { RDFList list = (RDFList) resource.getPropertyValue(property); List values = list.getValues(); int index = values.indexOf(value); removeListValue(resource, property, list, index); }