Search in sources :

Example 41 with Attribute

use of org.apache.felix.ipojo.metadata.Attribute in project felix by apache.

the class InstantiatedService method addProperty.

/**
 * Adds an array property.
 * @param name the property name
 * @param values the property value
 * @return the current instantiated sub-service
 */
public InstantiatedService addProperty(String name, String[] values) {
    Element elem = new Element("property", "");
    elem.addAttribute(new Attribute("name", name));
    elem.addAttribute(new Attribute("type", "array"));
    m_conf.add(elem);
    for (int i = 0; i < values.length; i++) {
        Object obj = values[i];
        Element e = new Element("property", "");
        elem.addElement(e);
        e.addAttribute(new Attribute("value", obj.toString()));
    }
    return this;
}
Also used : Attribute(org.apache.felix.ipojo.metadata.Attribute) Element(org.apache.felix.ipojo.metadata.Element)

Example 42 with Attribute

use of org.apache.felix.ipojo.metadata.Attribute in project felix by apache.

the class InstantiatedService method addProperty.

/**
 * Adds a string property.
 * @param name the property name
 * @param value the property value
 * @return the current instantiated sub-service
 */
public InstantiatedService addProperty(String name, String value) {
    Element elem = new Element("property", "");
    m_conf.add(elem);
    elem.addAttribute(new Attribute("name", name));
    elem.addAttribute(new Attribute("value", value));
    return this;
}
Also used : Attribute(org.apache.felix.ipojo.metadata.Attribute) Element(org.apache.felix.ipojo.metadata.Element)

Example 43 with Attribute

use of org.apache.felix.ipojo.metadata.Attribute in project felix by apache.

the class InstantiatedService method addProperty.

/**
 * Adds a vector property.
 * @param name the property name
 * @param values the property value
 * @return the current instantiated sub-service
 */
public InstantiatedService addProperty(String name, Vector values) {
    Element elem = new Element("property", "");
    elem.addAttribute(new Attribute("name", name));
    elem.addAttribute(new Attribute("type", "vector"));
    m_conf.add(elem);
    for (int i = 0; i < values.size(); i++) {
        Object obj = values.get(i);
        Element e = new Element("property", "");
        elem.addElement(e);
        if (obj instanceof String) {
            e.addAttribute(new Attribute("value", obj.toString()));
        } else {
            // TODO
            throw new UnsupportedOperationException("Complex properties are not supported yet");
        }
    }
    return this;
}
Also used : Attribute(org.apache.felix.ipojo.metadata.Attribute) Element(org.apache.felix.ipojo.metadata.Element)

Example 44 with Attribute

use of org.apache.felix.ipojo.metadata.Attribute in project felix by apache.

the class ProvidedService method getElement.

/**
 * Gets the provided element.
 * @return the 'provides' element describing
 * the current provided service.
 */
public Element getElement() {
    ensureValidity();
    Element dep = new Element("provides", "");
    dep.addAttribute(new Attribute("action", "implement"));
    dep.addAttribute(new Attribute("specification", m_specification));
    for (int i = 0; i < m_delegation.size(); i++) {
        dep.addElement((Element) m_delegation.get(i));
    }
    return dep;
}
Also used : Attribute(org.apache.felix.ipojo.metadata.Attribute) Element(org.apache.felix.ipojo.metadata.Element)

Example 45 with Attribute

use of org.apache.felix.ipojo.metadata.Attribute in project felix by apache.

the class ProvidedService method setDelegation.

/**
 * Sets the delegation policy of the given method.
 * @param method  the method name
 * @param policy the delegation policy
 * @return the current exported service.
 */
public ProvidedService setDelegation(String method, String policy) {
    Element element = new Element("delegation", "");
    element.addAttribute(new Attribute("method", method));
    element.addAttribute(new Attribute("policy", policy));
    m_delegation.add(element);
    return this;
}
Also used : Attribute(org.apache.felix.ipojo.metadata.Attribute) Element(org.apache.felix.ipojo.metadata.Element)

Aggregations

Attribute (org.apache.felix.ipojo.metadata.Attribute)125 Element (org.apache.felix.ipojo.metadata.Element)109 Test (org.junit.Test)9 PojoMetadata (org.apache.felix.ipojo.parser.PojoMetadata)6 Iterator (java.util.Iterator)4 Enumeration (java.util.Enumeration)3 Map (java.util.Map)3 Set (java.util.Set)3 ServiceReference (org.osgi.framework.ServiceReference)3 List (java.util.List)2 Entry (java.util.Map.Entry)2 PropertyDescription (org.apache.felix.ipojo.architecture.PropertyDescription)2 FieldMetadata (org.apache.felix.ipojo.parser.FieldMetadata)2 MethodMetadata (org.apache.felix.ipojo.parser.MethodMetadata)2 Type (org.objectweb.asm.Type)2 Member (java.lang.reflect.Member)1 ArrayList (java.util.ArrayList)1 Properties (java.util.Properties)1 CountDownLatch (java.util.concurrent.CountDownLatch)1 ExecutorService (java.util.concurrent.ExecutorService)1