import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
featureStore = new HashMap<String, FeatureStore>();
}
- /* (non-Javadoc)
- * @see jalview.datamodel.features.SequenceFeaturesI#add(jalview.datamodel.SequenceFeature)
+ /**
+ * {@inheritDoc}
*/
@Override
public boolean add(SequenceFeature sf)
return featureStore.get(type).addFeature(sf);
}
- /* (non-Javadoc)
- * @see jalview.datamodel.features.SequenceFeaturesI#findFeatures(int, int, java.lang.String)
+ /**
+ * {@inheritDoc}
*/
@Override
public List<SequenceFeature> findFeatures(int from, int to,
return result;
}
- /* (non-Javadoc)
- * @see jalview.datamodel.features.SequenceFeaturesI#getAllFeatures(java.lang.String)
+ /**
+ * {@inheritDoc}
*/
@Override
public List<SequenceFeature> getAllFeatures(String... type)
return result;
}
- /* (non-Javadoc)
- * @see jalview.datamodel.features.SequenceFeaturesI#getFeatureCount(boolean, java.lang.String)
+ /**
+ * {@inheritDoc}
*/
@Override
public int getFeatureCount(boolean positional, String... type)
{
int result = 0;
- for (FeatureStore fs : featureStore.values())
+
+ for (String featureType : varargToTypes(type))
{
- result += fs.size(positional);
+ FeatureStore featureSet = featureStore.get(featureType);
+ if (featureSet != null)
+ {
+ result += featureSet.getFeatureCount(positional);
+ }
}
-
return result;
}
- /* (non-Javadoc)
- * @see jalview.datamodel.features.SequenceFeaturesI#getPositionalFeatures(java.lang.String)
+ /**
+ * {@inheritDoc}
*/
@Override
public List<SequenceFeature> getPositionalFeatures(String... type)
.keySet() : Arrays.asList(type);
}
- /* (non-Javadoc)
- * @see jalview.datamodel.features.SequenceFeaturesI#getContactFeatures(java.lang.String)
+ /**
+ * {@inheritDoc}
*/
@Override
public List<SequenceFeature> getContactFeatures(String... type)
return result;
}
- /* (non-Javadoc)
- * @see jalview.datamodel.features.SequenceFeaturesI#getNonPositionalFeatures(java.lang.String)
+ /**
+ * {@inheritDoc}
*/
@Override
public List<SequenceFeature> getNonPositionalFeatures(String... type)
return result;
}
- /* (non-Javadoc)
- * @see jalview.datamodel.features.SequenceFeaturesI#delete(jalview.datamodel.SequenceFeature)
+ /**
+ * {@inheritDoc}
*/
@Override
public boolean delete(SequenceFeature sf)
return false;
}
- /* (non-Javadoc)
- * @see jalview.datamodel.features.SequenceFeaturesI#hasFeatures()
+ /**
+ * {@inheritDoc}
*/
@Override
public boolean hasFeatures()
return false;
}
- /* (non-Javadoc)
- * @see jalview.datamodel.features.SequenceFeaturesI#getFeatureGroups(boolean, java.lang.String)
+ /**
+ * {@inheritDoc}
*/
@Override
public Set<String> getFeatureGroups(boolean positionalFeatures,
return groups;
}
- /* (non-Javadoc)
- * @see jalview.datamodel.features.SequenceFeaturesI#getFeatureTypesForGroups(boolean, java.lang.String)
+ /**
+ * {@inheritDoc}
*/
@Override
public Set<String> getFeatureTypesForGroups(boolean positionalFeatures,
return result;
}
- /* (non-Javadoc)
- * @see jalview.datamodel.features.SequenceFeaturesI#getFeatureTypes()
+ /**
+ * {@inheritDoc}
*/
@Override
public Set<String> getFeatureTypes()
{
- return Collections.unmodifiableSet(featureStore.keySet());
+ Set<String> types = new HashSet<String>();
+ for (Entry<String, FeatureStore> entry : featureStore.entrySet())
+ {
+ if (!entry.getValue().isEmpty())
+ {
+ types.add(entry.getKey());
+ }
+ }
+ return types;
}
}