/*******************************************************************************
* Copyright (c) 2007-2010 Red Hat, Inc.
* Distributed under license by Red Hat, Inc. All rights reserved.
* This program is made available under the terms of the
* Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Red Hat, Inc. - initial API and implementation
******************************************************************************/
package org.jboss.tools.jsf.web.validation.jsf2.util;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.jdt.internal.core.JarEntryFile;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
import org.jboss.tools.jsf.jsf2.util.JSF2ResourceUtil;
import org.jboss.tools.jsf.web.validation.IJSFValidationComponent;
import org.jboss.tools.jsf.web.validation.jsf2.components.JSF2ComponentFactory;
/**
*
* @author yzhishko
*
*/
@SuppressWarnings("restriction")
public class JSF2ComponentRecognizer {
public static IJSFValidationComponent[] recognizeCompositeValidationComponents(
IFile file, IDOMElement element) {
List<IJSFValidationComponent> validationComponents = new ArrayList<IJSFValidationComponent>(
0);
Object container = JSF2ResourceUtil.findCompositeComponentContainer(
file.getProject(), element);
if (container == null) {
IJSFValidationComponent component = JSF2ComponentFactory
.createCompositeTempComponent(element);
validationComponents.add(component);
} else if (container instanceof IFile) {
IJSFValidationComponent[] components = JSF2ComponentFactory
.createFixableAttrTempComponents((IFile) container, element);
for (int i = 0; i < components.length; i++) {
validationComponents.add(components[i]);
}
} else if (container instanceof JarEntryFile) {
IJSFValidationComponent[] components = JSF2ComponentFactory
.createUnfixableAttrTempComponents(
(JarEntryFile) container, element);
for (int i = 0; i < components.length; i++) {
validationComponents.add(components[i]);
}
}
return validationComponents.toArray(new IJSFValidationComponent[0]);
}
public static IJSFValidationComponent recognizeURIValidationComponent(
IProject project, IDOMAttr attrContainer) {
if (!JSF2ResourceUtil.isResourcesFolderExists(project, attrContainer
.getValue())) {
return JSF2ComponentFactory.createURITempComponent(attrContainer);
}
return null;
}
}