001    package com.hammurapi.config.runtime;
002    
003    import java.util.HashSet;
004    import java.util.Set;
005    
006    /**
007     * Property injection parameter class.
008     * @author Pavel Vlasov
009     *
010     */
011    public class InjectionConfig extends FactoryConfig {
012            
013            private Set<String> alreadyInjected = new HashSet<String>();
014            private Object target;
015            
016            /**
017             * Sets injection target. 
018             * @param target Injection target.
019             */
020            public void setTarget(Object target) {
021                    this.target = target;
022            }
023            
024            /**
025             * @return Injection target.
026             */
027            public Object getTarget() {
028                    return target;
029            }
030            
031            /**
032             * @return Names of properties already injected by lower profiles.
033             */
034            public Set<String> getAlreadyInjected() {
035                    return alreadyInjected;
036            }
037            
038            /**
039             * @param alreadyInjected  Names of properties already injected by lower profiles.
040             */
041            public void setAlreadyInjected(Set<String> alreadyInjected) {
042                    this.alreadyInjected = alreadyInjected;
043            }
044            
045            public InjectionConfig() {
046                    
047            }
048            
049            private DestroyableSink destroyableSink;
050            
051            public DestroyableSink getDestroyableSink() {
052                    return destroyableSink;
053            }
054    
055            public void setDestroyableSink(DestroyableSink destroyableSink) {
056                    this.destroyableSink = destroyableSink;
057            }
058    
059            public InjectionConfig(FactoryConfig factoryConfig, DestroyableSink destroyableSink) {
060                    setContextUrl(factoryConfig.getContextUrl());
061                    setClassLoader(factoryConfig.getClassLoader());
062                    setTokenSource(factoryConfig.getTokenSource());
063                    setContext(factoryConfig.getContext());
064                    setProfilePath(factoryConfig.getProfilePath());
065                    setContextFactory(factoryConfig.getContextFactory());           
066                    setObjectPath(factoryConfig.getObjectPath());
067                    this.destroyableSink = destroyableSink;
068            }       
069    
070    }