package org.jboss.tools.jsf.jsf2.model; import org.jboss.tools.common.model.loaders.EntityRecognizer; import org.jboss.tools.common.model.loaders.EntityRecognizerContext; public class FileCompositeComponentRecognizer implements EntityRecognizer, CompositeComponentConstants { public FileCompositeComponentRecognizer() {} public String getEntityName(EntityRecognizerContext context) { return getEntityName(context.getExtension(), context.getBody()); } String getEntityName(String ext, String body) { if(body == null) return null; if(isComponents(body, COMPOSITE_XMLNS)) { return ENT_FILE_COMPONENT; } if(isComponents(body, COMPOSITE_XMLNS_2_2)) { return ENT_FILE_COMPONENT_22; } return null; } private boolean isComponents(String body, String uri) { String q = "\""; //$NON-NLS-1$ int i = body.indexOf(q + uri + q); while(i > 0) { int j = body.lastIndexOf("xmlns", i); //$NON-NLS-1$ if(j > 0) { int k = body.indexOf("=", j); //$NON-NLS-1$ if(k > j && k < i) { int l = body.indexOf(q, k); if(l == i) { return true; } } } i = body.indexOf(q + uri + q, i + 1); } return false; } }