/******************************************************************************* * Copyright (c) 2007 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.seam.core; import java.util.Collection; import java.util.List; import java.util.Set; /** * Represents component in seam tools model. * @author Alexey Kazakov */ public interface ISeamComponent extends ISeamContextVariable { /** * Returns java declaration of component. * This declaration represents java class of component. * @return java declaration of component. */ public ISeamJavaComponentDeclaration getJavaDeclaration(); /** * Returns XML declarations of component. * These declarations represent <component> elements of components.xml files. * @return java declaration of component. */ public Set<ISeamXmlComponentDeclaration> getXmlDeclarations(); /** * Returns Properties declarations of component. * These declarations represent properties from seam.properties file. * @return */ public Set<ISeamPropertiesDeclaration> getPropertiesDeclarations(); /** * @return all declarations of component */ public Set<ISeamComponentDeclaration> getAllDeclarations(); /** * @return qualified Class name of component */ public String getClassName(); /** * */ public int getPrecedence(); /** * @return bijected attributes of component */ public Set<IBijectedAttribute> getBijectedAttributes(); /** * Returns bijected attributes by name * @param name * @return */ public Set<IBijectedAttribute> getBijectedAttributesByName(String name); /** * Returns bijected attributes by type * @param type * @return */ public Set<IBijectedAttribute> getBijectedAttributesByType(BijectedAttributeType type); /** * @return true if component marked as stateful sessian bean */ public boolean isStateful(); /** * @return true if component marked as stateless session bean */ public boolean isStateless(); /** * @return true if component marked as Entity */ public boolean isEntity(); /** * @return roles of component */ public Set<IRole> getRoles(); /** * @return methods of component */ public Set<ISeamComponentMethod> getMethods(); /** * @param type * @return return methods by type */ public Set<ISeamComponentMethod> getMethodsByType(SeamComponentMethodType type); /** * Returns all properties from all components.xml declarations of component * @param propertyName * @return */ public Collection<ISeamProperty> getProperties(); /** * Returns properties by name from all components.xml declarations of component * @param propertyName * @return */ public List<ISeamProperty> getProperties(String propertyName); public ISeamComponent clone() throws CloneNotSupportedException; }