public String[] getMetaAttributeNames(final String domainName) { if (PmdDataFactoryModule.META_DOMAIN.equals(domainName)) { return properties.keySet().toArray(new String[properties.size()]); } return backend.getMetaAttributeNames(domainName); }
public Object getMetaAttribute( final String domain, final String name, final Class type, final DataAttributeContext context, final Object defaultValue) { if (domain == null) { throw new NullPointerException(); } if (name == null) { throw new NullPointerException(); } if (context == null) { throw new NullPointerException(); } if (PmdDataFactoryModule.META_DOMAIN.equals(domain)) { final Object value = concept.getProperty(name); if (value == null) { return defaultValue; } // this metadata layer is not cloneable, so malicious client code may // modify metadata objects. // We cant solve the problem here, so all we can do is hope and pray. return convertFromPmd(value, type, defaultValue, context); } return backend.getMetaAttribute(domain, name, type, context, defaultValue); }
public ConceptQueryMapper getMetaAttributeMapper(final String domain, final String name) { if (PmdDataFactoryModule.META_DOMAIN.equals(domain)) { final Object value = properties.get(name); if (value == null) { return DefaultConceptQueryMapper.INSTANCE; } // this metadata layer is not cloneable, so malicious client code may // modify metadata objects. // We cant solve the problem here, so all we can do is hope and pray. final DataAttributeContext context = new DefaultDataAttributeContext(); for (int i = 0; i < conceptMappers.size(); i++) { final ConceptQueryMapper conceptMapper = conceptMappers.get(i); final Object ivalue = conceptMapper.getValue(value, null, context); if (ivalue != null) { return conceptMapper; } } } return DefaultConceptQueryMapper.INSTANCE; }