StringBuilder sbErr = new StringBuilder();
for (AttributeDescriptor srcAttr : srcSchema.getAttributeDescriptors()) {
String srcName = srcAttr.getLocalName();
// AttributeDescriptor dstAttr = dstSchema.getDescriptor(srcName);
AttributeDescriptor dstAttr = dstAttrbiutes.get(srcName.toLowerCase());
if(dstAttr==null) {
sbErr.append("[No such dst attribute '").append(srcName).append("']");
continue;
}
// LOGGER.debug("Checking SRC["
//// +srcAttr+"]["
// +srcAttr.getLocalName()+"]["
// +srcAttr.getType()+"]["
// +srcAttr.getType().getName()+"]["
// +srcAttr.getType().getBinding()+"]["
// +srcAttr.getType().getClass()+"]["
//// +srcAttr+"]["
// +"]");
// LOGGER.debug("Checking DST["
//// +dstAttr+"]["
// +dstAttr.getLocalName()+"]["
// +dstAttr.getType()+"]["
// +dstAttr.getType().getName()+"]["
// +dstAttr.getType().getBinding()+"]["
// +dstAttr.getType().getClass()+"]["
//// +dstAttr+"]["
// +"]");
// if(! srcAttr.getType().getBinding().equals(dstAttr.getType().getBinding()) ) {
if( ! isCompat(srcAttr, dstAttr)) {
// if(LOGGER.isDebugEnabled() )
// LOGGER.debug("Attrib mismatch: src:"+srcAttr + " dst:"+dstAttr
// + " binding s:["+srcAttr.getType().getBinding()+"] d:["+dstAttr.getType().getBinding()+"]");
sbErr.append("[Attribute type mismatch ").append(srcName)
.append("' src:").append(srcAttr.getType())
.append(" dst:").append(dstAttr.getType())
.append("]");
}
}
// todo: should also check for missing [attribs in dst but not in src] attribs?