You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by pk...@apache.org on 2013/11/29 16:04:56 UTC
svn commit: r1546576 - in
/uima/ruta/trunk/ruta-ep-caseditor/src/main/java/org/apache/uima/ruta/caseditor/view/tree:
ArrayFeatureTreeNode.java FSTreeNode.java
Author: pkluegl
Date: Fri Nov 29 15:04:56 2013
New Revision: 1546576
URL: http://svn.apache.org/r1546576
Log:
UIMA-3471
- applied patch
Added:
uima/ruta/trunk/ruta-ep-caseditor/src/main/java/org/apache/uima/ruta/caseditor/view/tree/ArrayFeatureTreeNode.java
Modified:
uima/ruta/trunk/ruta-ep-caseditor/src/main/java/org/apache/uima/ruta/caseditor/view/tree/FSTreeNode.java
Added: uima/ruta/trunk/ruta-ep-caseditor/src/main/java/org/apache/uima/ruta/caseditor/view/tree/ArrayFeatureTreeNode.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-ep-caseditor/src/main/java/org/apache/uima/ruta/caseditor/view/tree/ArrayFeatureTreeNode.java?rev=1546576&view=auto
==============================================================================
--- uima/ruta/trunk/ruta-ep-caseditor/src/main/java/org/apache/uima/ruta/caseditor/view/tree/ArrayFeatureTreeNode.java (added)
+++ uima/ruta/trunk/ruta-ep-caseditor/src/main/java/org/apache/uima/ruta/caseditor/view/tree/ArrayFeatureTreeNode.java Fri Nov 29 15:04:56 2013
@@ -0,0 +1,108 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.uima.ruta.caseditor.view.tree;
+
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.Iterator;
+import java.util.LinkedList;
+
+import org.apache.uima.cas.Feature;
+import org.apache.uima.cas.Type;
+
+/**
+ * Tree node that represents CommonArrayFS nodes, especially, CommonArrayFS that are not ArrayFS.
+ */
+public class ArrayFeatureTreeNode implements ITreeNode {
+
+ private ITreeNode parent;
+
+ private Feature f;
+
+ private String value;
+
+ private ArrayList<ITreeNode> children;
+
+ public ArrayFeatureTreeNode(ITreeNode parent, Feature f, String value) {
+ this.parent = parent;
+ this.f = f;
+ this.value = value;
+ this.children = new ArrayList<ITreeNode>();
+ }
+
+ public void addChild(ITreeNode child) {
+ this.children.add(child);
+ }
+
+ public ITreeNode[] getChildren() {
+ return this.children.toArray(new ITreeNode[] {});
+ }
+
+ public Iterator<ITreeNode> getChildrenIterator() {
+ return this.children.iterator();
+ }
+
+ public String getName() {
+ return f.getShortName() + ": " + value;
+ }
+
+ public void getNodes(LinkedList<ITreeNode> list) {
+ }
+
+ public ITreeNode getParent() {
+ return parent;
+ }
+
+ public Type getType() {
+ return f.getRange();
+ }
+
+ public boolean hasChildren() {
+ if (children.size() > 0) {
+ return true;
+ }
+ return false;
+ }
+
+ public Feature getFeature() {
+ return this.f;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void sort(Comparator<ITreeNode> cp) {
+ // nothing to do
+ }
+
+ public Object getAdapter(Class adapter) {
+
+ if (ArrayFeatureTreeNode.class.equals(adapter)) {
+ return this;
+ } else if (Feature.class.equals(adapter)) {
+ return f;
+
+ }
+
+ return null;
+ }
+
+}
Modified: uima/ruta/trunk/ruta-ep-caseditor/src/main/java/org/apache/uima/ruta/caseditor/view/tree/FSTreeNode.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-ep-caseditor/src/main/java/org/apache/uima/ruta/caseditor/view/tree/FSTreeNode.java?rev=1546576&r1=1546575&r2=1546576&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-ep-caseditor/src/main/java/org/apache/uima/ruta/caseditor/view/tree/FSTreeNode.java (original)
+++ uima/ruta/trunk/ruta-ep-caseditor/src/main/java/org/apache/uima/ruta/caseditor/view/tree/FSTreeNode.java Fri Nov 29 15:04:56 2013
@@ -23,7 +23,9 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+import org.apache.commons.lang3.StringUtils;
import org.apache.uima.cas.ArrayFS;
+import org.apache.uima.cas.CommonArrayFS;
import org.apache.uima.cas.Feature;
import org.apache.uima.cas.FeatureStructure;
import org.apache.uima.cas.Type;
@@ -58,7 +60,9 @@ public class FSTreeNode extends Abstract
public void addFeatures(ITreeNode parent, Feature f, FeatureStructure featureStructure,
List<Type> parentTypes) {
if (f.getRange().isArray()) {
+ // handle all kinds of arrays
FeatureStructure featureValue = featureStructure.getFeatureValue(f);
+ // ArrayFS is a special kind of CommonArrayFS
if (featureValue instanceof ArrayFS) {
ArrayFS array = (ArrayFS) featureValue;
if (array != null) {
@@ -83,6 +87,11 @@ public class FSTreeNode extends Abstract
}
}
}
+ } else if (featureValue instanceof CommonArrayFS) {
+ // handle all other kind of CommonArrayFS nodes (ArrayFS handled above)
+ CommonArrayFS array = (CommonArrayFS) featureValue;
+ String text = "[" + StringUtils.join(array.toStringArray(), ", ") + "]";
+ parent.addChild(new ArrayFeatureTreeNode(this, f, text));
}
} else if (f.getRange().isPrimitive()) {
if ("uima.cas.AnnotationBase:sofa".equals(f.getName())) {