/**
* Copyright 2011-2015 John Ericksen
*
* 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.androidtransfuse.model;
import org.androidtransfuse.adapter.ASTType;
import org.androidtransfuse.adapter.PackageClass;
import org.androidtransfuse.gen.componentBuilder.ExpressionVariableDependentGenerator;
import org.androidtransfuse.gen.componentBuilder.InjectionNodeFactory;
import org.androidtransfuse.gen.componentBuilder.MethodBuilder;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
/**
* @author John Ericksen
*/
public class ComponentDescriptor {
private final PackageClass packageClass;
private final String type;
private MethodBuilder initMethodBuilder;
private List<ExpressionVariableDependentGenerator> generators = new ArrayList<ExpressionVariableDependentGenerator>();
private List<ExpressionVariableDependentGenerator> registrations = new ArrayList<ExpressionVariableDependentGenerator>();
private InjectionNodeFactory injectionNodeFactory;
private ASTType initMethodEventAnnotation;
public ComponentDescriptor(String type, PackageClass packageClass) {
this.type = type;
this.packageClass = packageClass;
}
public PackageClass getPackageClass() {
return packageClass;
}
public String getType() {
return type;
}
public MethodBuilder getInitMethodBuilder() {
return initMethodBuilder;
}
public List<ExpressionVariableDependentGenerator> getGenerators() {
return generators;
}
public void addGenerators(Collection<ExpressionVariableDependentGenerator> generators) {
this.generators.addAll(generators);
}
public void addGenerators(ExpressionVariableDependentGenerator... generators) {
if (generators != null) {
addGenerators(Arrays.asList(generators));
}
}
public void setInitMethodBuilder(ASTType initEventAnnotation, MethodBuilder initMethodBuilder) {
this.initMethodBuilder = initMethodBuilder;
this.initMethodEventAnnotation = initEventAnnotation;
}
public InjectionNodeFactory getInjectionNodeFactory() {
return injectionNodeFactory;
}
public void setInjectionNodeFactory(InjectionNodeFactory injectionNodeFactory) {
this.injectionNodeFactory = injectionNodeFactory;
}
public ASTType getInitMethodEventAnnotation() {
return initMethodEventAnnotation;
}
public List<ExpressionVariableDependentGenerator> getRegistrations() {
return registrations;
}
public void addRegistration(ExpressionVariableDependentGenerator generator){
registrations.add(generator);
}
}