All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.ow2.util.scan.api.metadata.IClassMetadata Maven / Gradle / Ivy

The newest version!
/**
 * Copyright 2006-2012 Bull S.A.S.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.ow2.util.scan.api.metadata;

import java.io.Serializable;
import java.util.Collection;
import java.util.List;

import org.ow2.util.scan.api.metadata.structures.IClass;
import org.ow2.util.scan.api.metadata.structures.IField;
import org.ow2.util.scan.api.metadata.structures.IMethod;

/**
 * Interface of a class metadata.
 * @author Gael Lalire
 */
public interface IClassMetadata extends IMetadata, Serializable {

    /**
     * add a method metadata.
     * @param methodAnnotationMetadata the method metadata
     */
    void addMethodMetadata(final IMethodMetadata methodAnnotationMetadata);

    /**
     * @param jMethod key of the map of methods annotations.
     * @return method annotation metadata of a given method.
     */
    IMethodMetadata getMethodMetadata(final IMethod jMethod);

    /**
     * @param methodName the name of the method to search
     * @return list of method annotation metadata for the given method name
     */
    List searchMethodMetadata(final String methodName);

    /**
     * @param fieldName the name of the field to search
     * @return list of field annotation metadata for the given field name
     */
    List searchFieldMetadata(final String fieldName);

    /**
     * Get collections of methods annotation metadata.
     * @return collections of methods annotation metadata.
     */
    Collection getMethodMetadataCollection();

    /**
     * Add field annotation metadata for a given Bean.
     * @param fieldAnnotationMetadata metadata of a field.
     */
    void addFieldMetadata(final IFieldMetadata fieldAnnotationMetadata);

    /**
     * @param jField key of the map of fields annotations.
     * @return field annotation metadata of a given method.
     */
    IFieldMetadata getFieldMetadata(final IField jField);

    /**
     * Get collections of fields annotation metadata.
     * @return collections of fields annotation metadata.
     */
    Collection getFieldMetadataCollection();

    /**
     * @return class representation
     */
    IClass getJClass();

    /**
     * @param jClass jClass
     */
    void setJClass(final IClass jClass);

    /**
     * Return class name (with dot)
     */
    String getClassName();

    /**
     * Return class name (with slash)
     */
    String getInternalClassName();

    String getSuperName();


}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy