public static void getFSValues()

in CasViewerEclipsePlugin/uimaj-ep-casviewer-core/src/main/java/org/apache/uima/casviewer/ui/internal/index/FSIndexContentProvider.java [319:418]


    public static void getFSValues (FeatureStructure aFS, CAS aTCAS, int aNestingLevel, 
            PrintStream aOut)
    {
        Type stringType = CasIndexRepository.stringType;
        
        // printTabs(aNestingLevel, aOut);
        aOut.println(aFS.getType().getName());
        
        //print all features
        List aFeatures = aFS.getType().getAppropriateFeatures();
        Iterator iter = aFeatures.iterator();
        while (iter.hasNext())
        {
            Feature feat = (Feature)iter.next();
            // printTabs(aNestingLevel + 1, aOut);
            //print feature name
            aOut.print(feat.getShortName());
            aOut.print(" = ");
            //prnt feature value (how we get this depends on feature's range type)
            String rangeTypeName = feat.getRange().getName();
            if (aTCAS.getTypeSystem().subsumes(stringType, feat.getRange())) {
//              must check for subtypes of string
                String str = aFS.getStringValue(feat);
                if (str == null) {
                    aOut.println("null");
                } else {
                    aOut.print("\"");
                    if (str.length() > 64) {
                        str = str.substring(0,64) + "...";
                    }  
                    aOut.print(str);
                    aOut.println("\""); 
                } 
            } else if (CAS.TYPE_NAME_INTEGER.equals(rangeTypeName)) {
                aOut.println(aFS.getIntValue(feat));        
            } else if (CAS.TYPE_NAME_FLOAT.equals(rangeTypeName)) {
                aOut.println(aFS.getFloatValue(feat));        
            } else if (CAS.TYPE_NAME_STRING_ARRAY.equals(rangeTypeName)) {
                StringArrayFS arrayFS = (StringArrayFS)aFS.getFeatureValue(feat);
                if (arrayFS == null) {
                    aOut.println("null");
                } else {  
                    String[] vals = arrayFS.toArray();
                    aOut.print("[");
                    for (int i=0; i < vals.length - 1; i++) {
                        aOut.print(vals[i]);
                        aOut.print(',');
                    }
                    if (vals.length > 0) {
                        aOut.print(vals[vals.length - 1]);
                    }
                    aOut.println("]\"");
                }  
            } else if (CAS.TYPE_NAME_INTEGER_ARRAY.equals(rangeTypeName)) {
                IntArrayFS arrayFS = (IntArrayFS)aFS.getFeatureValue(feat);
                if (arrayFS == null) {
                    aOut.println("null");
                } else {  
                    int[] vals = arrayFS.toArray();
                    aOut.print("[");
                    for (int i=0; i < vals.length - 1; i++)
                    {
                        aOut.print(vals[i]);
                        aOut.print(',');
                    }
                    if (vals.length > 0)
                    {
                        aOut.print(vals[vals.length - 1]);
                    }
                    aOut.println("]\"");
                }  
            } else if (CAS.TYPE_NAME_FLOAT_ARRAY.equals(rangeTypeName)) {
                FloatArrayFS arrayFS = (FloatArrayFS)aFS.getFeatureValue(feat);
                if (arrayFS == null)
                {
                    aOut.println("null");
                } else {  
                    float[] vals = arrayFS.toArray();
                    aOut.print("[");
                    for (int i=0; i < vals.length - 1; i++)
                    {
                        aOut.print(vals[i]);
                        aOut.print(',');
                    }
                    if (vals.length > 0) {
                        aOut.print(vals[vals.length - 1]);
                    }
                    aOut.println("]\"");
                }  
            } else {
                // non-primitive type
                FeatureStructure val = aFS.getFeatureValue(feat);
                if (val == null) {
                    aOut.println("null");
                } else {
                    getFSValues(val, aTCAS, aNestingLevel + 1, aOut);
                }    
            }      
        }   
    } // getFSValues