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

com.fitbur.aopalliance.reflect.ProgramUnit Maven / Gradle / Ivy

There is a newer version: 1.0.0
Show newest version

package com.fitbur.aopalliance.reflect;

/**
 * An abstract program unit.
 *
 * 

Any structural unit of a base program (class, member, * ...). Units exclude the code. * *

When referencing a program unit, the client can retrieve unit * locators using {@link #getLocator()} or more specific methods. This * locators shall be used conjointly whith an {@link * com.fitbur.aopalliance.instrument.Instrumentor} implementation in order to * perform aspetual transformations of the program (e.g. type merging, * parameters adding,...). * *

Program units also supports metadatas, i.e. the ability to add * extra information on the base program so that the client can * extends its meaning very easily. * * @see com.fitbur.aopalliance.instrument.Instrumentor * @see UnitLocator * @see Class * @see Method * @see Field */ public interface ProgramUnit { /** * Returns the locator that corresponds to this unit. */ UnitLocator getLocator(); /** * Returns the metadata that is associated to this unit from its * key. */ Metadata getMetadata(Object key); /** * Returns all the metadatas that are associated to the current * unit. */ Metadata[] getMetadatas(); /** * Associates a metadata to the current unit. * *

If a metadata already exists with the same key, then its * value is replaced by the newly given one. */ void addMetadata(Metadata metadata); /** * Removes a metadata from its key. * *

If none metadata having the given key exists, then this method * has no effect. */ void removeMetadata(Object key); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy