@Override public int compare(FieldMapping fm17, FieldMapping fm33) { //in my company's QM 9000 system // ... fm17 stands for critical deviation and // ... fm33 stands for suggestion for improvement // and the nested in-line if are good for code quality! // ... sorry for the comments ^^ return fm17.usesWildcard() == fm33.usesWildcard()? //both same Wildcard fm17.ignoreField() == fm17.ignoreField()? // both same ignore state fm33.getFieldPattern().length()-fm17.getFieldPattern().length(): //longer field pattern fm17.ignoreField()?-1:1: //that with ignore field=true !fm17.usesWildcard()?-1:1; //that without wildcard }
/** * Removes any specified filter */ public void removeFilter(){ setFilter(null); } /**
if(mapping.ignoreField()){ builder.append('!'); if(!mapping.isGlobal()){ String pattern = mapping.getFieldPattern(); appendUri(builder, pattern); if(mapping.getFilter() != null){ if(mapping.getFilter().getType() == ConstraintType.text){ serializeConstraint(builder,(TextConstraint)mapping.getFilter()); } else if(mapping.getFilter().getType() == ConstraintType.value){ serializeConstraint(builder,(ValueConstraint)mapping.getFilter()); } else { throw new IllegalStateException(String.format("Constraints of type %s are not supported! Please adapt this implementation!",mapping.getFilter().getType())); for(String fieldMapping : mapping.getMappings()){ if(fieldMapping != null){ if(first){
public void addMapping(FieldMapping mapping){ if(mapping == null){ return; } if(mappings.add(mapping)){ if(mapping.usesWildcard()){ Pattern fieldPattern = mapping.getRegexPattern(); synchronized (wildcardMap) { Set<FieldMapping> fieldPatternMappings = wildcardMap.get(fieldPattern); if(fieldPatternMappings == null){ fieldPatternMappings = new HashSet<FieldMapping>();//new TreeSet<FieldMapping>(FieldMappingUtils.FIELD_MAPPING_COMPARATOR); wildcardMap.put(fieldPattern, fieldPatternMappings); } fieldPatternMappings.add(mapping); } } else { String fieldName = mapping.getFieldPattern(); synchronized (fieldMap) { Set<FieldMapping> fieldPatternMappings = fieldMap.get(fieldName); if(fieldPatternMappings == null){ fieldPatternMappings = new HashSet<FieldMapping>();//new TreeSet<FieldMapping>(FieldMappingUtils.FIELD_MAPPING_COMPARATOR); fieldMap.put(fieldName, fieldPatternMappings); } fieldPatternMappings.add(mapping); } } } //else already present -> nothing todo } public Collection<FieldMapping> getMappings(){
if(mapping.usesWildcard() //if wildcard && !mapping.ignoreField() && //and not ignore mapping.getFilter() != null && //and a filter is present mapping.getFilter().getType() == ConstraintType.text){ //and of type text globalFilter = (TextConstraint)mapping.getFilter(); for(String targetField : mapping.getMappings()){ if(mapping.ignoreField()){ targetFields.remove(targetField); } else { if(!mapping.ignoreField() && !Collections.disjoint(targetFields, mapping.getMappings())){ processMapping(mapping, valueFactory, field, values,globalFiltered, targetFields, target);
mapping.getFilter() != null && mapping.getFilter().getType() == ConstraintType.text){ filtered = new HashSet<Object>(values);//start with all values } else { //start with the values filtered by the global filter filtered = new HashSet<Object>(globalFiltered); if(mapping.getFilter()!=null){ switch (mapping.getFilter().getType()) { case value: ValueConstraint valueConstraint = (ValueConstraint)mapping.getFilter(); processFilter(valueConstraint,filtered,valueFactory); break; case text: TextConstraint textConstraint = (TextConstraint)mapping.getFilter(); processFilter(textConstraint,filtered,!mapping.usesWildcard()); break; default: log.warn(String.format("Filter of type %s are not supported -> select all values! (Constraint=%s)", mapping.getFilter().getType(),mapping.getFilter())); break; for(String mappedField : mapping.getMappings()){
return new FieldMapping(fieldPattern, filter, mappedTo.toArray(new String[mappedTo.size()])); }catch (RuntimeException e) { log.warn(String.format("Unable to parse FieldMapping from Line '%s'",
if(mapping.ignoreField()){ builder.append('!'); if(!mapping.isGlobal()){ String pattern = mapping.getFieldPattern(); appendUri(builder, pattern); if(mapping.getFilter() != null){ if(mapping.getFilter().getType() == ConstraintType.text){ serializeConstraint(builder,(TextConstraint)mapping.getFilter()); } else if(mapping.getFilter().getType() == ConstraintType.value){ serializeConstraint(builder,(ValueConstraint)mapping.getFilter()); } else { throw new IllegalStateException(String.format("Constraints of type %s are not supported! Please adapt this implementation!",mapping.getFilter().getType())); for(String fieldMapping : mapping.getMappings()){ if(fieldMapping != null){ if(first){
public void addMapping(FieldMapping mapping){ if(mapping == null){ return; } if(mappings.add(mapping)){ if(mapping.usesWildcard()){ Pattern fieldPattern = mapping.getRegexPattern(); synchronized (wildcardMap) { Set<FieldMapping> fieldPatternMappings = wildcardMap.get(fieldPattern); if(fieldPatternMappings == null){ fieldPatternMappings = new HashSet<FieldMapping>();//new TreeSet<FieldMapping>(FieldMappingUtils.FIELD_MAPPING_COMPARATOR); wildcardMap.put(fieldPattern, fieldPatternMappings); } fieldPatternMappings.add(mapping); } } else { String fieldName = mapping.getFieldPattern(); synchronized (fieldMap) { Set<FieldMapping> fieldPatternMappings = fieldMap.get(fieldName); if(fieldPatternMappings == null){ fieldPatternMappings = new HashSet<FieldMapping>();//new TreeSet<FieldMapping>(FieldMappingUtils.FIELD_MAPPING_COMPARATOR); fieldMap.put(fieldName, fieldPatternMappings); } fieldPatternMappings.add(mapping); } } } //else already present -> nothing todo } public Collection<FieldMapping> getMappings(){
if(mapping.usesWildcard() //if wildcard && !mapping.ignoreField() && //and not ignore mapping.getFilter() != null && //and a filter is present mapping.getFilter().getType() == ConstraintType.text){ //and of type text globalFilter = (TextConstraint)mapping.getFilter(); for(String targetField : mapping.getMappings()){ if(mapping.ignoreField()){ targetFields.remove(targetField); } else { if(!mapping.ignoreField() && !Collections.disjoint(targetFields, mapping.getMappings())){ processMapping(mapping, valueFactory, field, values,globalFiltered, targetFields, target);
mapping.getFilter() != null && mapping.getFilter().getType() == ConstraintType.text){ filtered = new HashSet<Object>(values);//start with all values } else { //start with the values filtered by the global filter filtered = new HashSet<Object>(globalFiltered); if(mapping.getFilter()!=null){ switch (mapping.getFilter().getType()) { case value: ValueConstraint valueConstraint = (ValueConstraint)mapping.getFilter(); processFilter(valueConstraint,filtered,valueFactory); break; case text: TextConstraint textConstraint = (TextConstraint)mapping.getFilter(); processFilter(textConstraint,filtered,!mapping.usesWildcard()); break; default: log.warn(String.format("Filter of type %s are not supported -> select all values! (Constraint=%s)", mapping.getFilter().getType(),mapping.getFilter())); break; for(String mappedField : mapping.getMappings()){
return new FieldMapping(fieldPattern, filter, mappedTo.toArray(new String[mappedTo.size()])); }catch (RuntimeException e) { log.warn(String.format("Unable to parse FieldMapping from Line '%s'",
if(mapping.usesWildcard()){ Pattern fieldPattern = mapping.getRegexPattern(); synchronized (wildcardMap) { Collection<FieldMapping> fieldPatternMappings = wildcardMap.get(fieldPattern); String fieldPattern = mapping.getFieldPattern(); synchronized (fieldMap) { Collection<FieldMapping> fieldPatternMappings = fieldMap.get(fieldPattern);
@Override public int compare(FieldMapping fm17, FieldMapping fm33) { //in my company's QM 9000 system // ... fm17 stands for critical deviation and // ... fm33 stands for suggestion for improvement // and the nested in-line if are good for code quality! // ... sorry for the comments ^^ return fm17.usesWildcard() == fm33.usesWildcard()? //both same Wildcard fm17.ignoreField() == fm17.ignoreField()? // both same ignore state fm33.getFieldPattern().length()-fm17.getFieldPattern().length(): //longer field pattern fm17.ignoreField()?-1:1: //that with ignore field=true !fm17.usesWildcard()?-1:1; //that without wildcard }
fieldMapper = new DefaultFieldMapperImpl(ValueConverterFactory.getDefaultInstance()); fieldMapper.addMapping(new FieldMapping(new TextConstraint( (String)null, langs.toArray(new String[langs.size()]))));
/** * Removes any specified filter */ public void removeFilter(){ setFilter(null); } /**
if(mapping.usesWildcard()){ Pattern fieldPattern = mapping.getRegexPattern(); synchronized (wildcardMap) { Collection<FieldMapping> fieldPatternMappings = wildcardMap.get(fieldPattern); String fieldPattern = mapping.getFieldPattern(); synchronized (fieldMap) { Collection<FieldMapping> fieldPatternMappings = fieldMap.get(fieldPattern);