You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@polygene.apache.org by ni...@apache.org on 2015/07/31 04:58:43 UTC
[03/81] [abbrv] [partial] zest-java git commit: First round of
changes to move to org.apache.zest namespace.
http://git-wip-us.apache.org/repos/asf/zest-java/blob/061ddaa0/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/LayerAssemblyImpl.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/LayerAssemblyImpl.java b/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/LayerAssemblyImpl.java
deleted file mode 100644
index 8853f92..0000000
--- a/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/LayerAssemblyImpl.java
+++ /dev/null
@@ -1,625 +0,0 @@
-/*
- * Copyright (c) 2007, Rickard Öberg. All Rights Reserved.
- * Copyright (c) 2012, Paul Merlin.
- *
- * 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.qi4j.runtime.bootstrap;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Set;
-import org.qi4j.api.activation.Activator;
-import org.qi4j.api.common.MetaInfo;
-import org.qi4j.api.common.Visibility;
-import org.qi4j.api.service.ServiceImporter;
-import org.qi4j.api.structure.Layer;
-import org.qi4j.bootstrap.ApplicationAssembly;
-import org.qi4j.bootstrap.AssemblyVisitor;
-import org.qi4j.bootstrap.EntityAssembly;
-import org.qi4j.bootstrap.EntityDeclaration;
-import org.qi4j.bootstrap.ImportedServiceAssembly;
-import org.qi4j.bootstrap.ImportedServiceDeclaration;
-import org.qi4j.bootstrap.LayerAssembly;
-import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.bootstrap.ObjectAssembly;
-import org.qi4j.bootstrap.ObjectDeclaration;
-import org.qi4j.bootstrap.ServiceAssembly;
-import org.qi4j.bootstrap.ServiceDeclaration;
-import org.qi4j.bootstrap.TransientAssembly;
-import org.qi4j.bootstrap.TransientDeclaration;
-import org.qi4j.bootstrap.ValueAssembly;
-import org.qi4j.bootstrap.ValueDeclaration;
-import org.qi4j.functional.Specification;
-
-/**
- * Assembly of a Layer. From here you can create more ModuleAssemblies for
- * the Layer that is being assembled. It is also here that you define
- * what other Layers this Layer is using by calling {@link org.qi4j.runtime.bootstrap.LayerAssemblyImpl#uses()}.
- */
-public final class LayerAssemblyImpl
- implements LayerAssembly
-{
- private final ApplicationAssembly applicationAssembly;
- private final HashMap<String, ModuleAssemblyImpl> moduleAssemblies;
- private final Set<LayerAssembly> uses;
-
- private String name;
- private final MetaInfo metaInfo = new MetaInfo();
- private final List<Class<? extends Activator<Layer>>> activators = new ArrayList<>();
-
- public LayerAssemblyImpl( ApplicationAssembly applicationAssembly, String name )
- {
- this.applicationAssembly = applicationAssembly;
- this.name = name;
-
- moduleAssemblies = new LinkedHashMap<>();
- uses = new LinkedHashSet<>();
- }
-
- @Override
- public ModuleAssembly module( String name )
- {
- if( name != null )
- {
- ModuleAssemblyImpl existing = moduleAssemblies.get( name );
- if( existing != null )
- {
- return existing;
- }
- }
- ModuleAssemblyImpl moduleAssembly = new ModuleAssemblyImpl( this, name );
- moduleAssemblies.put( name, moduleAssembly );
- return moduleAssembly;
- }
-
- @Override
- public ApplicationAssembly application()
- {
- return applicationAssembly;
- }
-
- @Override
- public LayerAssembly setName( String name )
- {
- this.name = name;
- return this;
- }
-
- @Override
- public LayerAssembly setMetaInfo( Object info )
- {
- metaInfo.set( info );
- return this;
- }
-
- @Override
- public LayerAssembly uses( LayerAssembly... layerAssembly )
- throws IllegalArgumentException
- {
- uses.addAll( Arrays.asList( layerAssembly ) );
- return this;
- }
-
- @Override
- @SafeVarargs
- public final LayerAssembly withActivators( Class<? extends Activator<Layer>>... activators )
- {
- this.activators.addAll( Arrays.asList( activators ) );
- return this;
- }
-
- @Override
- public <ThrowableType extends Throwable> void visit( AssemblyVisitor<ThrowableType> visitor )
- throws ThrowableType
- {
- visitor.visitLayer( this );
- for( ModuleAssemblyImpl moduleAssembly : moduleAssemblies.values() )
- {
- moduleAssembly.visit( visitor );
- }
- }
-
- @Override
- public EntityDeclaration entities( Specification<? super EntityAssembly> specification )
- {
- final List<EntityDeclaration> declarations = new ArrayList<>();
-
- for( ModuleAssemblyImpl moduleAssembly : moduleAssemblies.values() )
- {
- declarations.add( moduleAssembly.entities( specification ) );
- }
-
- return new EntityDeclaration()
- {
- @Override
- public EntityDeclaration setMetaInfo( Object info )
- {
- for( EntityDeclaration declaration : declarations )
- {
- declaration.setMetaInfo( info );
- }
- return this;
- }
-
- @Override
- public EntityDeclaration visibleIn( Visibility visibility )
- {
- for( EntityDeclaration declaration : declarations )
- {
- declaration.visibleIn( visibility );
- }
- return this;
- }
-
- @Override
- public EntityDeclaration withConcerns( Class<?>... concerns )
- {
- for( EntityDeclaration declaration : declarations )
- {
- declaration.withConcerns( concerns );
- }
- return this;
- }
-
- @Override
- public EntityDeclaration withSideEffects( Class<?>... sideEffects )
- {
- for( EntityDeclaration declaration : declarations )
- {
- declaration.withSideEffects( sideEffects );
- }
- return this;
- }
-
- @Override
- public EntityDeclaration withMixins( Class<?>... mixins )
- {
- for( EntityDeclaration declaration : declarations )
- {
- declaration.withMixins( mixins );
- }
- return this;
- }
-
- @Override
- public EntityDeclaration withTypes( Class<?>... types )
- {
- for( EntityDeclaration declaration : declarations )
- {
- declaration.withTypes( types );
- }
- return this;
- }
- };
- }
-
- @Override
- public ServiceDeclaration services( Specification<? super ServiceAssembly> specification )
- {
- final List<ServiceDeclaration> declarations = new ArrayList<>();
-
- for( ModuleAssemblyImpl moduleAssembly : moduleAssemblies.values() )
- {
- declarations.add( moduleAssembly.services( specification ) );
- }
-
- return new ServiceDeclaration()
- {
- @Override
- public ServiceDeclaration setMetaInfo( Object serviceAttribute )
- {
- for( ServiceDeclaration declaration : declarations )
- {
- declaration.setMetaInfo( serviceAttribute );
- }
- return this;
- }
-
- @Override
- public ServiceDeclaration visibleIn( Visibility visibility )
- {
- for( ServiceDeclaration declaration : declarations )
- {
- declaration.visibleIn( visibility );
- }
- return this;
- }
-
- @Override
- public ServiceDeclaration withConcerns( Class<?>... concerns )
- {
- for( ServiceDeclaration declaration : declarations )
- {
- declaration.withConcerns( concerns );
- }
- return this;
- }
-
- @Override
- public ServiceDeclaration withSideEffects( Class<?>... sideEffects )
- {
- for( ServiceDeclaration declaration : declarations )
- {
- declaration.withSideEffects( sideEffects );
- }
- return this;
- }
-
- @Override
- public ServiceDeclaration withMixins( Class<?>... mixins )
- {
- for( ServiceDeclaration declaration : declarations )
- {
- declaration.withMixins( mixins );
- }
- return this;
- }
-
- @Override
- public ServiceDeclaration withTypes( Class<?>... types )
- {
- for( ServiceDeclaration declaration : declarations )
- {
- declaration.withTypes( types );
- }
- return this;
- }
-
- @Override
- @SafeVarargs
- public final ServiceDeclaration withActivators( Class<? extends Activator<?>>... activators )
- {
- for( ServiceDeclaration declaration : declarations )
- {
- declaration.withActivators( activators );
- }
- return this;
- }
-
- @Override
- public ServiceDeclaration identifiedBy( String identity )
- {
- for( ServiceDeclaration declaration : declarations )
- {
- declaration.identifiedBy( identity );
- }
- return this;
- }
-
- @Override
- public ServiceDeclaration taggedWith( String... tags )
- {
- for( ServiceDeclaration declaration : declarations )
- {
- declaration.taggedWith( tags );
- }
- return this;
- }
-
- @Override
- public ServiceDeclaration instantiateOnStartup()
- {
- for( ServiceDeclaration declaration : declarations )
- {
- declaration.instantiateOnStartup();
- }
-
- return this;
- }
- };
- }
-
- @Override
- public TransientDeclaration transients( Specification<? super TransientAssembly> specification )
- {
- final List<TransientDeclaration> declarations = new ArrayList<>();
-
- for( ModuleAssemblyImpl moduleAssembly : moduleAssemblies.values() )
- {
- declarations.add( moduleAssembly.transients( specification ) );
- }
-
- return new TransientDeclaration()
- {
- @Override
- public TransientDeclaration setMetaInfo( Object info )
- {
- for( TransientDeclaration declaration : declarations )
- {
- declaration.setMetaInfo( info );
- }
- return this;
- }
-
- @Override
- public TransientDeclaration visibleIn( Visibility visibility )
- {
- for( TransientDeclaration declaration : declarations )
- {
- declaration.visibleIn( visibility );
- }
- return this;
- }
-
- @Override
- public TransientDeclaration withConcerns( Class<?>... concerns )
- {
- for( TransientDeclaration declaration : declarations )
- {
- declaration.withConcerns( concerns );
- }
- return this;
- }
-
- @Override
- public TransientDeclaration withSideEffects( Class<?>... sideEffects )
- {
- for( TransientDeclaration declaration : declarations )
- {
- declaration.withSideEffects( sideEffects );
- }
- return this;
- }
-
- @Override
- public TransientDeclaration withMixins( Class<?>... mixins )
- {
- for( TransientDeclaration declaration : declarations )
- {
- declaration.withMixins( mixins );
- }
- return this;
- }
-
- @Override
- public TransientDeclaration withTypes( Class<?>... types )
- {
- for( TransientDeclaration declaration : declarations )
- {
- declaration.withTypes( types );
- }
- return this;
- }
- };
- }
-
- @Override
- public ValueDeclaration values( Specification<? super ValueAssembly> specification )
- {
- final List<ValueDeclaration> declarations = new ArrayList<>();
-
- for( ModuleAssemblyImpl moduleAssembly : moduleAssemblies.values() )
- {
- declarations.add( moduleAssembly.values( specification ) );
- }
- return new ValueDeclaration()
- {
- @Override
- public ValueDeclaration setMetaInfo( Object info )
- {
- for( ValueDeclaration declaration : declarations )
- {
- declaration.setMetaInfo( info );
- }
- return this;
- }
-
- @Override
- public ValueDeclaration visibleIn( Visibility visibility )
- {
- for( ValueDeclaration declaration : declarations )
- {
- declaration.visibleIn( visibility );
- }
- return this;
- }
-
- @Override
- public ValueDeclaration withConcerns( Class<?>... concerns )
- {
- for( ValueDeclaration declaration : declarations )
- {
- declaration.withConcerns( concerns );
- }
- return this;
- }
-
- @Override
- public ValueDeclaration withSideEffects( Class<?>... sideEffects )
- {
- for( ValueDeclaration declaration : declarations )
- {
- declaration.withSideEffects( sideEffects );
- }
- return this;
- }
-
- @Override
- public ValueDeclaration withMixins( Class<?>... mixins )
- {
- for( ValueDeclaration declaration : declarations )
- {
- declaration.withMixins( mixins );
- }
- return this;
- }
-
- @Override
- public ValueDeclaration withTypes( Class<?>... types )
- {
- for( ValueDeclaration declaration : declarations )
- {
- declaration.withTypes( types );
- }
- return this;
- }
- };
- }
-
- @Override
- public ObjectDeclaration objects( Specification<? super ObjectAssembly> specification )
- {
- final List<ObjectDeclaration> declarations = new ArrayList<>();
-
- for( ModuleAssemblyImpl moduleAssembly : moduleAssemblies.values() )
- {
- declarations.add( moduleAssembly.objects( specification ) );
- }
- return new ObjectDeclaration()
- {
- @Override
- public ObjectDeclaration setMetaInfo( Object info )
- {
- for( ObjectDeclaration declaration : declarations )
- {
- declaration.setMetaInfo( info );
- }
- return this;
- }
-
- @Override
- public ObjectDeclaration visibleIn( Visibility visibility )
- throws IllegalStateException
- {
- for( ObjectDeclaration declaration : declarations )
- {
- declaration.visibleIn( visibility );
- }
- return this;
- }
- };
- }
-
- @Override
- public ImportedServiceDeclaration importedServices( Specification<? super ImportedServiceAssembly> specification )
- {
- final List<ImportedServiceDeclaration> declarations = new ArrayList<>();
-
- for( ModuleAssemblyImpl moduleAssembly : moduleAssemblies.values() )
- {
- declarations.add( moduleAssembly.importedServices( specification ) );
- }
- return new ImportedServiceDeclaration()
- {
-
- @Override
- public ImportedServiceDeclaration importOnStartup()
- {
- for( ImportedServiceDeclaration declaration : declarations )
- {
- declaration.importOnStartup();
- }
- return this;
- }
-
- @Override
- public ImportedServiceDeclaration visibleIn( Visibility visibility )
- {
- for( ImportedServiceDeclaration declaration : declarations )
- {
- declaration.visibleIn( visibility );
- }
- return this;
- }
-
- @Override
- public ImportedServiceDeclaration importedBy( Class<? extends ServiceImporter> serviceImporterClass )
- {
- for( ImportedServiceDeclaration declaration : declarations )
- {
- declaration.importedBy( serviceImporterClass );
- }
- return this;
- }
-
- @Override
- public ImportedServiceDeclaration identifiedBy( String identity )
- {
- for( ImportedServiceDeclaration declaration : declarations )
- {
- declaration.identifiedBy( identity );
- }
- return this;
- }
-
- @Override
- public ImportedServiceDeclaration taggedWith( String... tags )
- {
- for( ImportedServiceDeclaration declaration : declarations )
- {
- declaration.taggedWith( tags );
- }
- return this;
- }
-
- @Override
- public ImportedServiceDeclaration setMetaInfo( Object serviceAttribute )
- {
- for( ImportedServiceDeclaration declaration : declarations )
- {
- declaration.setMetaInfo( serviceAttribute );
- }
- return this;
- }
-
- @Override
- @SafeVarargs
- public final ImportedServiceDeclaration withActivators( Class<? extends Activator<?>>... activators )
- {
- for( ImportedServiceDeclaration declaration : declarations )
- {
- declaration.withActivators( activators );
- }
- return this;
- }
-
- };
- }
-
- Collection<ModuleAssemblyImpl> moduleAssemblies()
- {
- return moduleAssemblies.values();
- }
-
- Set<LayerAssembly> uses()
- {
- return uses;
- }
-
- public MetaInfo metaInfo()
- {
- return metaInfo;
- }
-
- @Override
- public String name()
- {
- return name;
- }
-
- public List<Class<? extends Activator<Layer>>> activators()
- {
- return activators;
- }
-
- @Override
- public final String toString()
- {
- return "LayerAssembly [" + name + "]";
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/061ddaa0/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/ModuleAssemblyImpl.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/ModuleAssemblyImpl.java b/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/ModuleAssemblyImpl.java
deleted file mode 100644
index 1f470dc..0000000
--- a/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/ModuleAssemblyImpl.java
+++ /dev/null
@@ -1,635 +0,0 @@
-/*
- * Copyright (c) 2007, Rickard Öberg. All Rights Reserved.
- * Copyright (c) 2012, Paul Merlin.
- *
- * 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.qi4j.runtime.bootstrap;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import org.qi4j.api.activation.Activator;
-import org.qi4j.api.common.MetaInfo;
-import org.qi4j.api.common.Visibility;
-import org.qi4j.api.composite.TransientComposite;
-import org.qi4j.api.entity.EntityComposite;
-import org.qi4j.api.entity.Identity;
-import org.qi4j.api.service.DuplicateServiceIdentityException;
-import org.qi4j.api.service.ServiceImporter;
-import org.qi4j.api.structure.Module;
-import org.qi4j.api.type.HasTypes;
-import org.qi4j.api.type.MatchTypeSpecification;
-import org.qi4j.api.value.ValueComposite;
-import org.qi4j.bootstrap.AssemblyException;
-import org.qi4j.bootstrap.AssemblySpecifications;
-import org.qi4j.bootstrap.AssemblyVisitor;
-import org.qi4j.bootstrap.ConfigurationDeclaration;
-import org.qi4j.bootstrap.EntityAssembly;
-import org.qi4j.bootstrap.EntityDeclaration;
-import org.qi4j.bootstrap.ImportedServiceAssembly;
-import org.qi4j.bootstrap.ImportedServiceDeclaration;
-import org.qi4j.bootstrap.LayerAssembly;
-import org.qi4j.bootstrap.MetaInfoDeclaration;
-import org.qi4j.bootstrap.MixinDeclaration;
-import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.bootstrap.ObjectAssembly;
-import org.qi4j.bootstrap.ObjectDeclaration;
-import org.qi4j.bootstrap.ServiceAssembly;
-import org.qi4j.bootstrap.ServiceDeclaration;
-import org.qi4j.bootstrap.TransientAssembly;
-import org.qi4j.bootstrap.TransientDeclaration;
-import org.qi4j.bootstrap.ValueAssembly;
-import org.qi4j.bootstrap.ValueDeclaration;
-import org.qi4j.functional.Iterables;
-import org.qi4j.functional.Specification;
-import org.qi4j.functional.Specifications;
-import org.qi4j.runtime.activation.ActivatorsModel;
-import org.qi4j.runtime.composite.TransientModel;
-import org.qi4j.runtime.composite.TransientsModel;
-import org.qi4j.runtime.entity.EntitiesModel;
-import org.qi4j.runtime.entity.EntityModel;
-import org.qi4j.runtime.object.ObjectModel;
-import org.qi4j.runtime.object.ObjectsModel;
-import org.qi4j.runtime.service.ImportedServiceModel;
-import org.qi4j.runtime.service.ImportedServicesModel;
-import org.qi4j.runtime.service.ServiceModel;
-import org.qi4j.runtime.service.ServicesModel;
-import org.qi4j.runtime.structure.ModuleModel;
-import org.qi4j.runtime.value.ValueModel;
-import org.qi4j.runtime.value.ValuesModel;
-
-import static org.qi4j.functional.Iterables.first;
-import static org.qi4j.functional.Iterables.iterable;
-
-/**
- * Assembly of a Module. This is where you register all objects, Composites,
- * Services. Each "add" method returns a declaration that you can use to add
- * additional information and metadata. If you call an "add" method with many
- * parameters then the declared metadata will apply to all types in the method
- * call.
- */
-public final class ModuleAssemblyImpl
- implements ModuleAssembly
-{
- private final LayerAssembly layerAssembly;
- private String name;
- private final MetaInfo metaInfo = new MetaInfo();
- private final List<Class<? extends Activator<Module>>> activators = new ArrayList<>();
-
- private final List<ServiceAssemblyImpl> serviceAssemblies = new ArrayList<>();
- private final Map<Class<?>, ImportedServiceAssemblyImpl> importedServiceAssemblies = new LinkedHashMap<>();
- private final Map<Class<? extends EntityComposite>, EntityAssemblyImpl> entityAssemblies = new LinkedHashMap<>();
- private final Map<Class<? extends ValueComposite>, ValueAssemblyImpl> valueAssemblies = new LinkedHashMap<>();
- private final Map<Class<? extends TransientComposite>, TransientAssemblyImpl> transientAssemblies = new LinkedHashMap<>();
- private final Map<Class<?>, ObjectAssemblyImpl> objectAssemblies = new LinkedHashMap<>();
-
- private final MetaInfoDeclaration metaInfoDeclaration = new MetaInfoDeclaration();
-
- public ModuleAssemblyImpl( LayerAssembly layerAssembly, String name )
- {
- this.layerAssembly = layerAssembly;
- this.name = name;
- }
-
- @Override
- public LayerAssembly layer()
- {
- return layerAssembly;
- }
-
- @Override
- public ModuleAssembly module( String layerName, String moduleName )
- {
- return layerAssembly.application().module( layerName, moduleName );
- }
-
- @Override
- public ModuleAssembly setName( String name )
- {
- this.name = name;
- return this;
- }
-
- @Override
- public String name()
- {
- return name;
- }
-
- public ModuleAssembly setMetaInfo( Object info )
- {
- metaInfo.set( info );
- return this;
- }
-
- @Override
- @SafeVarargs
- public final ModuleAssembly withActivators( Class<? extends Activator<Module>>... activators )
- {
- this.activators.addAll( Arrays.asList( activators ) );
- return this;
- }
-
- @Override
- @SuppressWarnings( {"raw", "unchecked"} )
- public ValueDeclaration values( Class<?>... valueTypes )
- {
- List<ValueAssemblyImpl> assemblies = new ArrayList<>();
-
- for( Class valueType : valueTypes )
- {
- if( valueAssemblies.containsKey( valueType ) )
- {
- assemblies.add( valueAssemblies.get( valueType ) );
- }
- else
- {
- ValueAssemblyImpl valueAssembly = new ValueAssemblyImpl( valueType );
- valueAssemblies.put( valueType, valueAssembly );
- assemblies.add( valueAssembly );
- }
- }
-
- return new ValueDeclarationImpl( assemblies );
- }
-
- @Override
- public ValueDeclaration values( Specification<? super ValueAssembly> specification )
- {
- List<ValueAssemblyImpl> assemblies = new ArrayList<>();
- for( ValueAssemblyImpl transientAssembly : valueAssemblies.values() )
- {
- if( specification.satisfiedBy( transientAssembly ) )
- {
- assemblies.add( transientAssembly );
- }
- }
-
- return new ValueDeclarationImpl( assemblies );
- }
-
- @Override
- @SuppressWarnings( {"raw", "unchecked"} )
- public TransientDeclaration transients( Class<?>... transientTypes )
- {
- List<TransientAssemblyImpl> assemblies = new ArrayList<>();
-
- for( Class valueType : transientTypes )
- {
- if( transientAssemblies.containsKey( valueType ) )
- {
- assemblies.add( transientAssemblies.get( valueType ) );
- }
- else
- {
- TransientAssemblyImpl transientAssembly = new TransientAssemblyImpl( valueType );
- transientAssemblies.put( valueType, transientAssembly );
- assemblies.add( transientAssembly );
- }
- }
-
- return new TransientDeclarationImpl( assemblies );
- }
-
- @Override
- public TransientDeclaration transients( Specification<? super TransientAssembly> specification )
- {
- List<TransientAssemblyImpl> assemblies = new ArrayList<>();
- for( TransientAssemblyImpl transientAssembly : transientAssemblies.values() )
- {
- if( specification.satisfiedBy( transientAssembly ) )
- {
- assemblies.add( transientAssembly );
- }
- }
-
- return new TransientDeclarationImpl( assemblies );
- }
-
- @Override
- @SuppressWarnings( {"raw", "unchecked"} )
- public EntityDeclaration entities( Class<?>... entityTypes )
- {
- List<EntityAssemblyImpl> assemblies = new ArrayList<>();
-
- for( Class entityType : entityTypes )
- {
- if( entityAssemblies.containsKey( entityType ) )
- {
- assemblies.add( entityAssemblies.get( entityType ) );
- }
- else
- {
- EntityAssemblyImpl entityAssembly = new EntityAssemblyImpl( entityType );
- entityAssemblies.put( entityType, entityAssembly );
- assemblies.add( entityAssembly );
- }
- }
-
- return new EntityDeclarationImpl( assemblies );
- }
-
- @Override
- public EntityDeclaration entities( Specification<? super EntityAssembly> specification )
- {
- List<EntityAssemblyImpl> assemblies = new ArrayList<>();
- for( EntityAssemblyImpl entityAssembly : entityAssemblies.values() )
- {
- if( specification.satisfiedBy( entityAssembly ) )
- {
- assemblies.add( entityAssembly );
- }
- }
-
- return new EntityDeclarationImpl( assemblies );
- }
-
- @Override
- public ConfigurationDeclaration configurations( Class<?>... configurationTypes )
- {
- List<EntityAssemblyImpl> entityAssemblyList = new ArrayList<>();
-
- for( Class entityType : configurationTypes )
- {
- if( this.entityAssemblies.containsKey( entityType ) )
- {
- entityAssemblyList.add( this.entityAssemblies.get( entityType ) );
- }
- else
- {
- EntityAssemblyImpl entityAssembly = new EntityAssemblyImpl( entityType );
- this.entityAssemblies.put( entityType, entityAssembly );
- entityAssemblyList.add( entityAssembly );
- }
- }
-
- List<ValueAssemblyImpl> valueAssemblyList = new ArrayList<>();
-
- for( Class valueType : configurationTypes )
- {
- if( valueAssemblies.containsKey( valueType ) )
- {
- valueAssemblyList.add( valueAssemblies.get( valueType ) );
- }
- else
- {
- ValueAssemblyImpl valueAssembly = new ValueAssemblyImpl( valueType );
- valueAssemblies.put( valueType, valueAssembly );
- valueAssemblyList.add( valueAssembly );
- valueAssembly.types.add( Identity.class );
- }
- }
-
- return new ConfigurationDeclarationImpl( entityAssemblyList, valueAssemblyList );
- }
-
- @Override
- public ConfigurationDeclaration configurations( Specification<HasTypes> specification )
- {
- Specification<HasTypes> isConfigurationComposite = new MatchTypeSpecification( Identity.class );
- specification = Specifications.and( specification, isConfigurationComposite );
- List<EntityAssemblyImpl> entityAssmblyList = new ArrayList<>();
- for( EntityAssemblyImpl entityAssembly : entityAssemblies.values() )
- {
- if( specification.satisfiedBy( entityAssembly ) )
- {
- entityAssmblyList.add( entityAssembly );
- }
- }
- List<ValueAssemblyImpl> valueAssemblyList = new ArrayList<>();
- for( ValueAssemblyImpl transientAssembly : valueAssemblies.values() )
- {
- if( specification.satisfiedBy( transientAssembly ) )
- {
- valueAssemblyList.add( transientAssembly );
- }
- }
- return new ConfigurationDeclarationImpl( entityAssmblyList, valueAssemblyList );
- }
-
- @Override
- public ObjectDeclaration objects( Class<?>... objectTypes )
- throws AssemblyException
- {
- List<ObjectAssemblyImpl> assemblies = new ArrayList<>();
-
- for( Class<?> objectType : objectTypes )
- {
- if( objectType.isInterface() )
- {
- throw new AssemblyException( "Interfaces can not be Zest Objects." );
- }
- if( objectAssemblies.containsKey( objectType ) )
- {
- assemblies.add( objectAssemblies.get( objectType ) );
- }
- else
- {
- ObjectAssemblyImpl objectAssembly = new ObjectAssemblyImpl( objectType );
- objectAssemblies.put( objectType, objectAssembly );
- assemblies.add( objectAssembly );
- }
- }
-
- return new ObjectDeclarationImpl( assemblies );
- }
-
- @Override
- public ObjectDeclaration objects( Specification<? super ObjectAssembly> specification )
- {
- List<ObjectAssemblyImpl> assemblies = new ArrayList<>();
- for( ObjectAssemblyImpl objectAssembly : objectAssemblies.values() )
- {
- if( specification.satisfiedBy( objectAssembly ) )
- {
- assemblies.add( objectAssembly );
- }
- }
-
- return new ObjectDeclarationImpl( assemblies );
- }
-
- @Override
- public ServiceDeclaration addServices( Class<?>... serviceTypes )
- {
- List<ServiceAssemblyImpl> assemblies = new ArrayList<>();
-
- for( Class<?> serviceType : serviceTypes )
- {
- ServiceAssemblyImpl serviceAssembly = new ServiceAssemblyImpl( serviceType );
- serviceAssemblies.add( serviceAssembly );
- assemblies.add( serviceAssembly );
- }
-
- return new ServiceDeclarationImpl( assemblies );
- }
-
- @Override
- public ServiceDeclaration services( Class<?>... serviceTypes )
- {
- List<ServiceAssemblyImpl> assemblies = new ArrayList<>();
-
- for( Class<?> serviceType : serviceTypes )
- {
- if( Iterables.matchesAny( AssemblySpecifications.types( serviceType ), serviceAssemblies ) )
- {
- Iterables.addAll( assemblies, Iterables.filter( AssemblySpecifications.types( serviceType ), serviceAssemblies ) );
- }
- else
- {
- ServiceAssemblyImpl serviceAssembly = new ServiceAssemblyImpl( serviceType );
- serviceAssemblies.add( serviceAssembly );
- assemblies.add( serviceAssembly );
- }
- }
-
- return new ServiceDeclarationImpl( assemblies );
- }
-
- @Override
- public ServiceDeclaration services( Specification<? super ServiceAssembly> specification )
- {
- List<ServiceAssemblyImpl> assemblies = new ArrayList<>();
- for( ServiceAssemblyImpl serviceAssembly : serviceAssemblies )
- {
- if( specification.satisfiedBy( serviceAssembly ) )
- {
- assemblies.add( serviceAssembly );
- }
- }
-
- return new ServiceDeclarationImpl( assemblies );
- }
-
- @Override
- public ImportedServiceDeclaration importedServices( Class<?>... serviceTypes )
- {
- List<ImportedServiceAssemblyImpl> assemblies = new ArrayList<>();
-
- for( Class<?> serviceType : serviceTypes )
- {
- if( importedServiceAssemblies.containsKey( serviceType ) )
- {
- assemblies.add( importedServiceAssemblies.get( serviceType ) );
- }
- else
- {
- ImportedServiceAssemblyImpl serviceAssembly = new ImportedServiceAssemblyImpl( serviceType, this );
- importedServiceAssemblies.put( serviceType, serviceAssembly );
- assemblies.add( serviceAssembly );
- }
- }
-
- return new ImportedServiceDeclarationImpl( assemblies );
- }
-
- @Override
- public ImportedServiceDeclaration importedServices( Specification<? super ImportedServiceAssembly> specification )
- {
- List<ImportedServiceAssemblyImpl> assemblies = new ArrayList<>();
- for( ImportedServiceAssemblyImpl objectAssembly : importedServiceAssemblies.values() )
- {
- if( specification.satisfiedBy( objectAssembly ) )
- {
- assemblies.add( objectAssembly );
- }
- }
-
- return new ImportedServiceDeclarationImpl( assemblies );
- }
-
- @Override
- public <T> MixinDeclaration<T> forMixin( Class<T> mixinType )
- {
- return metaInfoDeclaration.on( mixinType );
- }
-
- @Override
- public <ThrowableType extends Throwable> void visit( AssemblyVisitor<ThrowableType> visitor )
- throws ThrowableType
- {
- visitor.visitModule( this );
-
- for( TransientAssemblyImpl compositeDeclaration : transientAssemblies.values() )
- {
- visitor.visitComposite( new TransientDeclarationImpl( iterable( compositeDeclaration ) ) );
- }
-
- for( EntityAssemblyImpl entityDeclaration : entityAssemblies.values() )
- {
- visitor.visitEntity( new EntityDeclarationImpl( iterable( entityDeclaration ) ) );
- }
-
- for( ObjectAssemblyImpl objectDeclaration : objectAssemblies.values() )
- {
- visitor.visitObject( new ObjectDeclarationImpl( iterable( objectDeclaration ) ) );
- }
-
- for( ServiceAssemblyImpl serviceDeclaration : serviceAssemblies )
- {
- visitor.visitService( new ServiceDeclarationImpl( iterable( serviceDeclaration ) ) );
- }
-
- for( ImportedServiceAssemblyImpl importedServiceDeclaration : importedServiceAssemblies.values() )
- {
- visitor.visitImportedService( new ImportedServiceDeclarationImpl( iterable( importedServiceDeclaration ) ) );
- }
-
- for( ValueAssemblyImpl valueDeclaration : valueAssemblies.values() )
- {
- visitor.visitValue( new ValueDeclarationImpl( iterable( valueDeclaration ) ) );
- }
- }
-
- ModuleModel assembleModule( AssemblyHelper helper )
- throws AssemblyException
- {
- List<TransientModel> transientModels = new ArrayList<>();
- List<ObjectModel> objectModels = new ArrayList<>();
- List<ValueModel> valueModels = new ArrayList<>();
- List<ServiceModel> serviceModels = new ArrayList<>();
- List<ImportedServiceModel> importedServiceModels = new ArrayList<>();
-
- if( name == null )
- {
- throw new AssemblyException( "Module must have name set" );
- }
-
- for( TransientAssemblyImpl compositeDeclaration : transientAssemblies.values() )
- {
- transientModels.add( compositeDeclaration.newTransientModel( metaInfoDeclaration, helper ) );
- }
-
- for( ValueAssemblyImpl valueDeclaration : valueAssemblies.values() )
- {
- valueModels.add( valueDeclaration.newValueModel( metaInfoDeclaration, helper ) );
- }
-
- List<EntityModel> entityModels = new ArrayList<>();
- for( EntityAssemblyImpl entityDeclaration : entityAssemblies.values() )
- {
- entityModels.add( entityDeclaration.newEntityModel( metaInfoDeclaration,
- metaInfoDeclaration,
- metaInfoDeclaration,
- metaInfoDeclaration,
- helper ) );
- }
-
- for( ObjectAssemblyImpl objectDeclaration : objectAssemblies.values() )
- {
- objectDeclaration.addObjectModel( objectModels );
- }
-
- for( ServiceAssemblyImpl serviceDeclaration : serviceAssemblies )
- {
- if( serviceDeclaration.identity == null )
- {
- serviceDeclaration.identity = generateId( serviceDeclaration.types() );
- }
-
- serviceModels.add( serviceDeclaration.newServiceModel( metaInfoDeclaration, helper ) );
- }
-
- for( ImportedServiceAssemblyImpl importedServiceDeclaration : importedServiceAssemblies.values() )
- {
- importedServiceDeclaration.addImportedServiceModel( importedServiceModels );
- }
-
- ModuleModel moduleModel = new ModuleModel( name,
- metaInfo,
- new ActivatorsModel<>( activators ),
- new TransientsModel( transientModels ),
- new EntitiesModel( entityModels ),
- new ObjectsModel( objectModels ),
- new ValuesModel( valueModels ),
- new ServicesModel( serviceModels ),
- new ImportedServicesModel( importedServiceModels ) );
-
- // Check for duplicate service identities
- Set<String> identities = new HashSet<>();
- for( ServiceModel serviceModel : serviceModels )
- {
- String identity = serviceModel.identity();
- if( identities.contains( identity ) )
- {
- throw new DuplicateServiceIdentityException(
- "Duplicated service identity: " + identity + " in module " + moduleModel.name()
- );
- }
- identities.add( identity );
- }
- for( ImportedServiceModel serviceModel : importedServiceModels )
- {
- String identity = serviceModel.identity();
- if( identities.contains( identity ) )
- {
- throw new DuplicateServiceIdentityException(
- "Duplicated service identity: " + identity + " in module " + moduleModel.name()
- );
- }
- identities.add( identity );
- }
-
- for( ImportedServiceModel importedServiceModel : importedServiceModels )
- {
- boolean found = false;
- for( ObjectModel objectModel : objectModels )
- {
- if( first( objectModel.types() ).equals( importedServiceModel.serviceImporter() ) )
- {
- found = true;
- break;
- }
- }
- if( !found )
- {
- @SuppressWarnings( "raw" )
- Class<? extends ServiceImporter> serviceFactoryType = importedServiceModel.serviceImporter();
- ObjectModel objectModel = new ObjectModel( serviceFactoryType, Visibility.module, new MetaInfo() );
- objectModels.add( objectModel );
- }
- }
-
- return moduleModel;
- }
-
- private String generateId( Iterable<Class<?>> serviceTypes )
- {
- // Find service identity that is not yet used
- Class<?> serviceType = serviceTypes.iterator()
- .next(); // Use the first Iterable, which *SHOULD* be the main serviceType
- int idx = 0;
- String id = serviceType.getSimpleName();
- boolean invalid;
- do
- {
- invalid = false;
- for( ServiceAssemblyImpl serviceAssembly : serviceAssemblies )
- {
- if( serviceAssembly.identity() != null && serviceAssembly.identity().equals( id ) )
- {
- idx++;
- id = serviceType.getSimpleName() + "_" + idx;
- invalid = true;
- break;
- }
- }
- }
- while( invalid );
- return id;
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/061ddaa0/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/ObjectAssemblyImpl.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/ObjectAssemblyImpl.java b/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/ObjectAssemblyImpl.java
deleted file mode 100644
index 71475aa..0000000
--- a/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/ObjectAssemblyImpl.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (c) 2007, Rickard Öberg. All Rights Reserved.
- *
- * 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.qi4j.runtime.bootstrap;
-
-import java.lang.reflect.Modifier;
-import java.util.List;
-import org.qi4j.api.common.InvalidApplicationException;
-import org.qi4j.api.common.MetaInfo;
-import org.qi4j.api.common.Visibility;
-import org.qi4j.api.composite.Composite;
-import org.qi4j.bootstrap.ObjectAssembly;
-import org.qi4j.functional.Iterables;
-import org.qi4j.runtime.object.ObjectModel;
-
-/**
- * Assembly of an Object.
- */
-public final class ObjectAssemblyImpl
- implements ObjectAssembly
-{
- private Class<?> objectType;
- MetaInfo metaInfo = new MetaInfo();
- Visibility visibility = Visibility.module;
-
- public ObjectAssemblyImpl( Class<?> clazz )
- {
- // best try to find out if the class is a concrete class
- if( clazz.isEnum() ||
- ( !Composite.class.isAssignableFrom( clazz ) && Modifier.isAbstract( clazz.getModifiers() ) ) )
- {
- throw new IllegalArgumentException( "Declared objects must be concrete classes: " + clazz );
- }
- this.objectType = clazz;
- }
-
- @Override
- public Iterable<Class<?>> types()
- {
- return Iterables.<Class<?>>iterable( objectType );
- }
-
- void addObjectModel( List<ObjectModel> objectModels )
- {
- try
- {
- ObjectModel objectModel = new ObjectModel( objectType, visibility, metaInfo );
- objectModels.add( objectModel );
- }
- catch( Throwable e )
- {
- throw new InvalidApplicationException( "Could not register " + objectType.getName(), e );
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/061ddaa0/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/ObjectDeclarationImpl.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/ObjectDeclarationImpl.java b/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/ObjectDeclarationImpl.java
deleted file mode 100644
index c06032e..0000000
--- a/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/ObjectDeclarationImpl.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (c) 2007, Rickard Öberg. All Rights Reserved.
- *
- * 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.qi4j.runtime.bootstrap;
-
-import org.qi4j.api.common.Visibility;
-import org.qi4j.bootstrap.ObjectDeclaration;
-
-/**
- * Declaration of an Object. Created by {@link org.qi4j.runtime.bootstrap.ModuleAssemblyImpl#objects(Class[])}.
- */
-public final class ObjectDeclarationImpl
- implements ObjectDeclaration
-{
- private final Iterable<ObjectAssemblyImpl> assemblies;
-
- public ObjectDeclarationImpl( Iterable<ObjectAssemblyImpl> assemblies )
- {
- this.assemblies = assemblies;
- }
-
- @Override
- public ObjectDeclaration setMetaInfo( Object info )
- {
- for( ObjectAssemblyImpl assembly : assemblies )
- {
- assembly.metaInfo.set( info );
- }
- return this;
- }
-
- @Override
- public ObjectDeclaration visibleIn( Visibility visibility )
- throws IllegalStateException
- {
- for( ObjectAssemblyImpl assembly : assemblies )
- {
- assembly.visibility = visibility;
- }
- return this;
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/061ddaa0/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/OrAppliesToFilter.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/OrAppliesToFilter.java b/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/OrAppliesToFilter.java
deleted file mode 100644
index e50b748..0000000
--- a/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/OrAppliesToFilter.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (c) 2008, Rickard Öberg. All Rights Reserved.
- *
- * 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.qi4j.runtime.bootstrap;
-
-import java.lang.reflect.Method;
-import org.qi4j.api.common.AppliesToFilter;
-
-/**
- * JAVADOC
- */
-final class OrAppliesToFilter
- implements AppliesToFilter
-{
- private final AppliesToFilter left;
- private final AppliesToFilter right;
-
- OrAppliesToFilter( AppliesToFilter left, AppliesToFilter right )
- {
- this.left = left;
- this.right = right;
- }
-
- @Override
- public boolean appliesTo( Method method, Class<?> mixin, Class<?> compositeType, Class<?> fragmentClass )
- {
- return left.appliesTo( method, mixin, compositeType, fragmentClass ) ||
- right.appliesTo( method, mixin, compositeType, fragmentClass );
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/zest-java/blob/061ddaa0/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/ServiceAssemblyImpl.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/ServiceAssemblyImpl.java b/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/ServiceAssemblyImpl.java
deleted file mode 100644
index 1adbfe6..0000000
--- a/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/ServiceAssemblyImpl.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Copyright (c) 2007, Rickard Öberg. All Rights Reserved.
- * Copyright (c) 2012, Paul Merlin.
- *
- * 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.qi4j.runtime.bootstrap;
-
-import java.lang.reflect.Type;
-import java.util.ArrayList;
-import java.util.List;
-import org.qi4j.api.activation.Activator;
-import org.qi4j.api.activation.Activators;
-import org.qi4j.api.common.InvalidApplicationException;
-import org.qi4j.api.service.ServiceComposite;
-import org.qi4j.api.util.Annotations;
-import org.qi4j.api.util.Classes;
-import org.qi4j.bootstrap.ServiceAssembly;
-import org.qi4j.bootstrap.StateDeclarations;
-import org.qi4j.functional.Function;
-import org.qi4j.functional.Iterables;
-import org.qi4j.runtime.activation.ActivatorsModel;
-import org.qi4j.runtime.service.ServiceModel;
-
-/**
- * Assembly of a Service.
- */
-public final class ServiceAssemblyImpl extends CompositeAssemblyImpl
- implements ServiceAssembly
-{
- String identity;
- boolean instantiateOnStartup = false;
- List<Class<? extends Activator<?>>> activators = new ArrayList<>();
-
- public ServiceAssemblyImpl( Class<?> serviceType )
- {
- super( serviceType );
- // The composite must always implement ServiceComposite, as a marker interface
- if( !ServiceComposite.class.isAssignableFrom( serviceType ) )
- {
- types.add( ServiceComposite.class );
- }
- }
-
- @Override
- public String identity()
- {
- return identity;
- }
-
- @SuppressWarnings( {"raw", "unchecked"} )
- ServiceModel newServiceModel( StateDeclarations stateDeclarations, AssemblyHelper helper )
- {
- try
- {
- buildComposite( helper, stateDeclarations );
- List<Class<? extends Activator<?>>> activatorClasses = Iterables.toList(
- Iterables.<Class<? extends Activator<?>>>flatten( activators, activatorsDeclarations( types ) ) );
- return new ServiceModel( types, visibility, metaInfo,
- new ActivatorsModel( activatorClasses ),
- mixinsModel, stateModel, compositeMethodsModel,
- identity, instantiateOnStartup );
- }
- catch( Exception e )
- {
- throw new InvalidApplicationException( "Could not register " + types, e );
- }
- }
-
- private Iterable<Class<? extends Activator<?>>> activatorsDeclarations( Iterable<? extends Class<?>> typess )
- {
- // Find activator declarations
- ArrayList<Type> allTypes = new ArrayList<>();
- for( Class<?> type : typess )
- {
- Iterable<Type> types = Classes.typesOf( type );
- Iterables.addAll( allTypes, types );
- }
- // Find all activators and flattern them into an iterable
- Function<Type, Iterable<Class<? extends Activator<?>>>> function = new Function<Type, Iterable<Class<? extends Activator<?>>>>()
- {
- @Override
- public Iterable<Class<? extends Activator<?>>> map( Type type )
- {
- Activators activators = Annotations.annotationOn( type, Activators.class );
- if( activators == null )
- {
- return Iterables.empty();
- }
- else
- {
- return Iterables.iterable( activators.value() );
- }
- }
- };
- Iterable<Class<? extends Activator<?>>> flatten = Iterables.flattenIterables( Iterables.map( function, allTypes ) );
- return Iterables.toList( flatten );
- }
-
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/061ddaa0/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/ServiceDeclarationImpl.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/ServiceDeclarationImpl.java b/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/ServiceDeclarationImpl.java
deleted file mode 100644
index 34e1f6d..0000000
--- a/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/ServiceDeclarationImpl.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * Copyright (c) 2007, Rickard Öberg. All Rights Reserved.
- * Copyright (c) 2012, Paul Merlin.
- *
- * 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.qi4j.runtime.bootstrap;
-
-import java.util.ArrayList;
-import java.util.List;
-import org.qi4j.api.activation.Activator;
-import org.qi4j.api.common.Visibility;
-import org.qi4j.api.service.qualifier.ServiceTags;
-import org.qi4j.bootstrap.ServiceDeclaration;
-
-import static java.util.Arrays.asList;
-
-/**
- * Declaration of a Service. Created by {@link org.qi4j.runtime.bootstrap.ModuleAssemblyImpl#services(Class[])}.
- */
-public final class ServiceDeclarationImpl
- implements ServiceDeclaration
-{
- private final Iterable<ServiceAssemblyImpl> serviceAssemblies;
-
- public ServiceDeclarationImpl( Iterable<ServiceAssemblyImpl> serviceAssemblies )
- {
- this.serviceAssemblies = serviceAssemblies;
- }
-
- @Override
- public ServiceDeclaration visibleIn( Visibility visibility )
- {
- for( ServiceAssemblyImpl serviceAssembly : serviceAssemblies )
- {
- serviceAssembly.visibility = visibility;
- }
- return this;
- }
-
- @Override
- public ServiceDeclaration identifiedBy( String identity )
- {
- for( ServiceAssemblyImpl serviceAssembly : serviceAssemblies )
- {
- serviceAssembly.identity = identity;
- }
- return this;
- }
-
- @Override
- public ServiceDeclaration taggedWith( String... tags )
- {
- for( ServiceAssemblyImpl serviceAssembly : serviceAssemblies )
- {
- ServiceTags previousTags = serviceAssembly.metaInfo.get( ServiceTags.class );
- if( previousTags != null )
- {
- List<String> tagList = new ArrayList<>();
- tagList.addAll( asList( previousTags.tags() ) );
- tagList.addAll( asList( tags ) );
- serviceAssembly.metaInfo.set( new ServiceTags( tagList.toArray( new String[ tagList.size() ] ) ) );
- }
- else
- {
- serviceAssembly.metaInfo.set( new ServiceTags( tags ) );
- }
- }
-
- return this;
- }
-
- @Override
- public ServiceDeclaration instantiateOnStartup()
- {
- for( ServiceAssemblyImpl serviceAssembly : serviceAssemblies )
- {
- serviceAssembly.instantiateOnStartup = true;
- }
- return this;
- }
-
- @Override
- public ServiceDeclaration setMetaInfo( Object serviceAttribute )
- {
- for( ServiceAssemblyImpl serviceAssembly : serviceAssemblies )
- {
- serviceAssembly.metaInfo.set( serviceAttribute );
- }
- return this;
- }
-
- @Override
- public ServiceDeclaration withConcerns( Class<?>... concerns )
- {
- for( ServiceAssemblyImpl serviceAssembly : serviceAssemblies )
- {
- serviceAssembly.concerns.addAll( asList( concerns ) );
- }
- return this;
- }
-
- @Override
- public ServiceDeclaration withSideEffects( Class<?>... sideEffects )
- {
- for( ServiceAssemblyImpl serviceAssembly : serviceAssemblies )
- {
- serviceAssembly.sideEffects.addAll( asList( sideEffects ) );
- }
- return this;
- }
-
- @Override
- public ServiceDeclaration withMixins( Class<?>... mixins )
- {
- for( ServiceAssemblyImpl serviceAssembly : serviceAssemblies )
- {
- serviceAssembly.mixins.addAll( asList( mixins ) );
- }
- return this;
- }
-
- @Override
- public ServiceDeclaration withTypes( Class<?>... types )
- {
- for( ServiceAssemblyImpl serviceAssembly : serviceAssemblies )
- {
- serviceAssembly.types.addAll( asList( types ) );
- }
- return this;
- }
-
- @Override
- @SafeVarargs
- public final ServiceDeclaration withActivators( Class<? extends Activator<?>>... activators )
- {
- for ( ServiceAssemblyImpl serviceAssembly : serviceAssemblies ) {
- serviceAssembly.activators.addAll( asList( activators ) );
- }
- return this;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/061ddaa0/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/TransientAssemblyImpl.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/TransientAssemblyImpl.java b/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/TransientAssemblyImpl.java
deleted file mode 100644
index dfc9721..0000000
--- a/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/TransientAssemblyImpl.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (c) 2007, Rickard Öberg. All Rights Reserved.
- *
- * 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.qi4j.runtime.bootstrap;
-
-import org.qi4j.api.common.InvalidApplicationException;
-import org.qi4j.api.composite.TransientComposite;
-import org.qi4j.bootstrap.StateDeclarations;
-import org.qi4j.bootstrap.TransientAssembly;
-import org.qi4j.runtime.composite.TransientModel;
-
-/**
- * Declaration of a TransientComposite.
- */
-public final class TransientAssemblyImpl extends CompositeAssemblyImpl
- implements TransientAssembly
-{
- public TransientAssemblyImpl( Class<?> transientType )
- {
- super( transientType );
-
- // The composite must always implement TransientComposite, as a marker interface
- if( !TransientComposite.class.isAssignableFrom( transientType ) )
- {
- types.add( TransientComposite.class );
- }
-
- // If type is a class, register it as a mixin
- if( !transientType.isInterface() )
- {
- mixins.add( transientType );
- }
- }
-
- TransientModel newTransientModel( StateDeclarations stateDeclarations, AssemblyHelper helper )
- {
- try
- {
- buildComposite( helper, stateDeclarations );
- TransientModel transientModel = new TransientModel(
- types, visibility, metaInfo, mixinsModel, stateModel, compositeMethodsModel );
-
- return transientModel;
- }
- catch( Exception e )
- {
- throw new InvalidApplicationException( "Could not register " + types, e );
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/061ddaa0/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/TransientDeclarationImpl.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/TransientDeclarationImpl.java b/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/TransientDeclarationImpl.java
deleted file mode 100644
index 9a9154f..0000000
--- a/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/TransientDeclarationImpl.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Copyright (c) 2007, Rickard Öberg. All Rights Reserved.
- *
- * 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.qi4j.runtime.bootstrap;
-
-import org.qi4j.api.common.Visibility;
-import org.qi4j.bootstrap.TransientDeclaration;
-
-import static java.util.Arrays.asList;
-
-/**
- * Declaration of a Composite. Created by {@link org.qi4j.bootstrap.ModuleAssembly#transients(Class[])}.
- */
-public final class TransientDeclarationImpl
- implements TransientDeclaration
-{
- private final Iterable<TransientAssemblyImpl> assemblies;
-
- public TransientDeclarationImpl( Iterable<TransientAssemblyImpl> assemblies )
- {
- this.assemblies = assemblies;
- }
-
- @Override
- public TransientDeclaration setMetaInfo( Object info )
- {
- for( TransientAssemblyImpl assembly : assemblies )
- {
- assembly.metaInfo.set( info );
- }
- return this;
- }
-
- @Override
- public TransientDeclaration visibleIn( Visibility visibility )
- {
- for( TransientAssemblyImpl assembly : assemblies )
- {
- assembly.visibility = visibility;
- }
- return this;
- }
-
- @Override
- public TransientDeclaration withConcerns( Class<?>... concerns )
- {
- for( TransientAssemblyImpl assembly : assemblies )
- {
- assembly.concerns.addAll( asList( concerns ) );
- }
- return this;
- }
-
- @Override
- public TransientDeclaration withSideEffects( Class<?>... sideEffects )
- {
- for( TransientAssemblyImpl assembly : assemblies )
- {
- assembly.sideEffects.addAll( asList( sideEffects ) );
- }
- return this;
- }
-
- @Override
- public TransientDeclaration withMixins( Class<?>... mixins )
- {
- for( TransientAssemblyImpl assembly : assemblies )
- {
- assembly.mixins.addAll( asList( mixins ) );
- }
- return this;
- }
-
- @Override
- public TransientDeclaration withTypes( Class<?>... types )
- {
- for( TransientAssemblyImpl assembly : assemblies )
- {
- assembly.types.addAll( asList( types ) );
- }
- return this;
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/061ddaa0/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/TypeCheckAppliesToFilter.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/TypeCheckAppliesToFilter.java b/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/TypeCheckAppliesToFilter.java
deleted file mode 100644
index dee1993..0000000
--- a/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/TypeCheckAppliesToFilter.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (c) 2008, Rickard Öberg. All Rights Reserved.
- *
- * 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.qi4j.runtime.bootstrap;
-
-import java.lang.reflect.Method;
-import org.qi4j.api.common.AppliesToFilter;
-
-/**
- * JAVADOC
- */
-final class TypeCheckAppliesToFilter
- implements AppliesToFilter
-{
- @SuppressWarnings( "raw" )
- private final Class type;
-
- @SuppressWarnings( "raw" )
- TypeCheckAppliesToFilter( Class type )
- {
- this.type = type;
- }
-
- @Override
- @SuppressWarnings( "unchecked" )
- public boolean appliesTo( Method method, Class<?> mixin, Class<?> compositeType, Class<?> fragmentClass )
- {
- return type.isAssignableFrom( compositeType );
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/061ddaa0/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/TypedFragmentAppliesToFilter.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/TypedFragmentAppliesToFilter.java b/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/TypedFragmentAppliesToFilter.java
deleted file mode 100644
index e007697..0000000
--- a/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/TypedFragmentAppliesToFilter.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (c) 2008, Rickard Öberg. All Rights Reserved.
- *
- * 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.qi4j.runtime.bootstrap;
-
-import java.lang.reflect.Method;
-import org.qi4j.api.common.AppliesToFilter;
-
-/**
- * JAVADOC
- */
-final class TypedFragmentAppliesToFilter
- implements AppliesToFilter
-{
- @Override
- public boolean appliesTo( Method method, Class<?> mixin, Class<?> compositeType, Class<?> fragmentClass )
- {
- return method.getDeclaringClass().isAssignableFrom( fragmentClass );
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/061ddaa0/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/ValueAssemblyImpl.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/ValueAssemblyImpl.java b/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/ValueAssemblyImpl.java
deleted file mode 100644
index 605efa1..0000000
--- a/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/ValueAssemblyImpl.java
+++ /dev/null
@@ -1,248 +0,0 @@
-/*
- * Copyright (c) 2007-2011, Rickard Öberg. All Rights Reserved.
- * Copyright (c) 2014, Paul Merlin. All Rights Reserved.
- *
- * 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.qi4j.runtime.bootstrap;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.AccessibleObject;
-import java.lang.reflect.Member;
-import org.qi4j.api.association.Association;
-import org.qi4j.api.association.GenericAssociationInfo;
-import org.qi4j.api.association.ManyAssociation;
-import org.qi4j.api.association.NamedAssociation;
-import org.qi4j.api.common.InvalidApplicationException;
-import org.qi4j.api.common.MetaInfo;
-import org.qi4j.api.common.Optional;
-import org.qi4j.api.common.QualifiedName;
-import org.qi4j.api.common.UseDefaults;
-import org.qi4j.api.constraint.Constraint;
-import org.qi4j.api.property.GenericPropertyInfo;
-import org.qi4j.api.property.Property;
-import org.qi4j.api.util.Annotations;
-import org.qi4j.api.util.Classes;
-import org.qi4j.api.value.ValueComposite;
-import org.qi4j.bootstrap.StateDeclarations;
-import org.qi4j.bootstrap.ValueAssembly;
-import org.qi4j.runtime.association.AssociationModel;
-import org.qi4j.runtime.association.AssociationsModel;
-import org.qi4j.runtime.association.ManyAssociationModel;
-import org.qi4j.runtime.association.ManyAssociationsModel;
-import org.qi4j.runtime.association.NamedAssociationModel;
-import org.qi4j.runtime.association.NamedAssociationsModel;
-import org.qi4j.runtime.composite.StateModel;
-import org.qi4j.runtime.composite.ValueConstraintsInstance;
-import org.qi4j.runtime.composite.ValueConstraintsModel;
-import org.qi4j.runtime.property.PropertyModel;
-import org.qi4j.runtime.value.ValueModel;
-import org.qi4j.runtime.value.ValueStateModel;
-
-import static org.qi4j.api.util.Annotations.isType;
-import static org.qi4j.api.util.Classes.typeOf;
-import static org.qi4j.functional.Iterables.filter;
-import static org.qi4j.functional.Iterables.first;
-
-/**
- * Declaration of a ValueComposite.
- */
-public final class ValueAssemblyImpl
- extends CompositeAssemblyImpl
- implements ValueAssembly
-{
- private AssociationsModel associationsModel;
- private ManyAssociationsModel manyAssociationsModel;
- private NamedAssociationsModel namedAssociationsModel;
-
- public ValueAssemblyImpl( Class<?> compositeType )
- {
- super( compositeType );
- // The composite must always implement ValueComposite, as a marker interface
- if( !ValueComposite.class.isAssignableFrom( compositeType ) )
- {
- types.add( ValueComposite.class );
- }
- }
-
- @Override
- protected StateModel createStateModel()
- {
- return new ValueStateModel( propertiesModel, associationsModel, manyAssociationsModel, namedAssociationsModel );
- }
-
- ValueModel newValueModel(
- StateDeclarations stateDeclarations,
- AssemblyHelper helper
- )
- {
- try
- {
- associationsModel = new AssociationsModel();
- manyAssociationsModel = new ManyAssociationsModel();
- namedAssociationsModel = new NamedAssociationsModel();
- buildComposite( helper, stateDeclarations );
-
- ValueModel valueModel = new ValueModel(
- types, visibility, metaInfo, mixinsModel, (ValueStateModel) stateModel, compositeMethodsModel );
-
- return valueModel;
- }
- catch( Exception e )
- {
- throw new InvalidApplicationException( "Could not register " + types, e );
- }
- }
-
- @Override
- protected void addStateFor( AccessibleObject accessor,
- Iterable<Class<? extends Constraint<?, ?>>> constraintClasses
- )
- {
- String stateName = QualifiedName.fromAccessor( accessor ).name();
-
- if( registeredStateNames.contains( stateName ) )
- {
- return; // Skip already registered names
- }
-
- Class<?> accessorType = Classes.RAW_CLASS.map( typeOf( accessor ) );
- if( Property.class.isAssignableFrom( accessorType ) )
- {
- propertiesModel.addProperty( newPropertyModel( accessor, constraintClasses ) );
- registeredStateNames.add( stateName );
- }
- else if( Association.class.isAssignableFrom( accessorType ) )
- {
- associationsModel.addAssociation( newAssociationModel( accessor, constraintClasses ) );
- registeredStateNames.add( stateName );
- }
- else if( ManyAssociation.class.isAssignableFrom( accessorType ) )
- {
- manyAssociationsModel.addManyAssociation( newManyAssociationModel( accessor, constraintClasses ) );
- registeredStateNames.add( stateName );
- }
- else if( NamedAssociation.class.isAssignableFrom( accessorType ) )
- {
- namedAssociationsModel.addNamedAssociation( newNamedAssociationModel( accessor, constraintClasses ) );
- registeredStateNames.add( stateName );
- }
- }
-
- @Override
- protected PropertyModel newPropertyModel( AccessibleObject accessor,
- Iterable<Class<? extends Constraint<?, ?>>> constraintClasses
- )
- {
- Iterable<Annotation> annotations = Annotations.findAccessorAndTypeAnnotationsIn( accessor );
- boolean optional = first( filter( isType( Optional.class ), annotations ) ) != null;
- ValueConstraintsModel valueConstraintsModel = constraintsFor( annotations, GenericPropertyInfo.propertyTypeOf( accessor ), ( (Member) accessor )
- .getName(), optional, constraintClasses, accessor );
- ValueConstraintsInstance valueConstraintsInstance = null;
- if( valueConstraintsModel.isConstrained() )
- {
- valueConstraintsInstance = valueConstraintsModel.newInstance();
- }
- MetaInfo metaInfo = stateDeclarations.metaInfoFor( accessor );
- boolean useDefaults = metaInfo.get( UseDefaults.class ) != null || stateDeclarations.useDefaults( accessor );
- Object initialValue = stateDeclarations.initialValueOf( accessor );
- return new PropertyModel( accessor, true, useDefaults, valueConstraintsInstance, metaInfo, initialValue );
- }
-
- public AssociationModel newAssociationModel( AccessibleObject accessor,
- Iterable<Class<? extends Constraint<?, ?>>> constraintClasses
- )
- {
- Iterable<Annotation> annotations = Annotations.findAccessorAndTypeAnnotationsIn( accessor );
- boolean optional = first( filter( isType( Optional.class ), annotations ) ) != null;
-
- // Constraints for Association references
- ValueConstraintsModel valueConstraintsModel = constraintsFor( annotations, GenericAssociationInfo
- .associationTypeOf( accessor ), ( (Member) accessor ).getName(), optional, constraintClasses, accessor );
- ValueConstraintsInstance valueConstraintsInstance = null;
- if( valueConstraintsModel.isConstrained() )
- {
- valueConstraintsInstance = valueConstraintsModel.newInstance();
- }
-
- // Constraints for the Association itself
- valueConstraintsModel = constraintsFor( annotations, Association.class, ( (Member) accessor ).getName(), optional, constraintClasses, accessor );
- ValueConstraintsInstance associationValueConstraintsInstance = null;
- if( valueConstraintsModel.isConstrained() )
- {
- associationValueConstraintsInstance = valueConstraintsModel.newInstance();
- }
-
- MetaInfo metaInfo = stateDeclarations.metaInfoFor( accessor );
- AssociationModel associationModel = new AssociationModel( accessor, valueConstraintsInstance, associationValueConstraintsInstance, metaInfo );
- return associationModel;
- }
-
- public ManyAssociationModel newManyAssociationModel( AccessibleObject accessor,
- Iterable<Class<? extends Constraint<?, ?>>> constraintClasses
- )
- {
- Iterable<Annotation> annotations = Annotations.findAccessorAndTypeAnnotationsIn( accessor );
- boolean optional = first( filter( isType( Optional.class ), annotations ) ) != null;
-
- // Constraints for entities in ManyAssociation
- ValueConstraintsModel valueConstraintsModel = constraintsFor( annotations, GenericAssociationInfo
- .associationTypeOf( accessor ), ( (Member) accessor ).getName(), optional, constraintClasses, accessor );
- ValueConstraintsInstance valueConstraintsInstance = null;
- if( valueConstraintsModel.isConstrained() )
- {
- valueConstraintsInstance = valueConstraintsModel.newInstance();
- }
-
- // Constraints for the ManyAssociation itself
- valueConstraintsModel = constraintsFor( annotations, ManyAssociation.class, ( (Member) accessor ).getName(), optional, constraintClasses, accessor );
- ValueConstraintsInstance manyValueConstraintsInstance = null;
- if( valueConstraintsModel.isConstrained() )
- {
- manyValueConstraintsInstance = valueConstraintsModel.newInstance();
- }
- MetaInfo metaInfo = stateDeclarations.metaInfoFor( accessor );
- ManyAssociationModel associationModel = new ManyAssociationModel( accessor, valueConstraintsInstance, manyValueConstraintsInstance, metaInfo );
- return associationModel;
- }
-
- public NamedAssociationModel newNamedAssociationModel( AccessibleObject accessor,
- Iterable<Class<? extends Constraint<?, ?>>> constraintClasses
- )
- {
- Iterable<Annotation> annotations = Annotations.findAccessorAndTypeAnnotationsIn( accessor );
- boolean optional = first( filter( isType( Optional.class ), annotations ) ) != null;
-
- // Constraints for entities in NamedAssociation
- ValueConstraintsModel valueConstraintsModel = constraintsFor( annotations, GenericAssociationInfo
- .associationTypeOf( accessor ), ( (Member) accessor ).getName(), optional, constraintClasses, accessor );
- ValueConstraintsInstance valueConstraintsInstance = null;
- if( valueConstraintsModel.isConstrained() )
- {
- valueConstraintsInstance = valueConstraintsModel.newInstance();
- }
-
- // Constraints for the NamedAssociation itself
- valueConstraintsModel = constraintsFor( annotations, NamedAssociation.class, ( (Member) accessor ).getName(), optional, constraintClasses, accessor );
- ValueConstraintsInstance namedValueConstraintsInstance = null;
- if( valueConstraintsModel.isConstrained() )
- {
- namedValueConstraintsInstance = valueConstraintsModel.newInstance();
- }
- MetaInfo metaInfo = stateDeclarations.metaInfoFor( accessor );
- NamedAssociationModel associationModel = new NamedAssociationModel( accessor, valueConstraintsInstance, namedValueConstraintsInstance, metaInfo );
- return associationModel;
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/061ddaa0/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/ValueDeclarationImpl.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/ValueDeclarationImpl.java b/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/ValueDeclarationImpl.java
deleted file mode 100644
index 22169bf..0000000
--- a/core/runtime/src/main/java/org/qi4j/runtime/bootstrap/ValueDeclarationImpl.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Copyright (c) 2007, Rickard Öberg. All Rights Reserved.
- *
- * 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.qi4j.runtime.bootstrap;
-
-import org.qi4j.api.common.Visibility;
-import org.qi4j.bootstrap.ValueDeclaration;
-
-import static java.util.Arrays.asList;
-
-/**
- * Declaration of a ValueComposite.
- */
-public final class ValueDeclarationImpl
- implements ValueDeclaration
-{
- private final Iterable<ValueAssemblyImpl> assemblies;
-
- public ValueDeclarationImpl( Iterable<ValueAssemblyImpl> assemblies )
- {
- this.assemblies = assemblies;
- }
-
- @Override
- public ValueDeclaration setMetaInfo( Object info )
- {
- for( ValueAssemblyImpl assembly : assemblies )
- {
- assembly.metaInfo.set( info );
- }
- return this;
- }
-
- @Override
- public ValueDeclaration visibleIn( Visibility visibility )
- {
- for( ValueAssemblyImpl assembly : assemblies )
- {
- assembly.visibility = visibility;
- }
- return this;
- }
-
- @Override
- public ValueDeclaration withConcerns( Class<?>... concerns )
- {
- for( ValueAssemblyImpl assembly : assemblies )
- {
- assembly.concerns.addAll( asList( concerns ) );
- }
- return this;
- }
-
- @Override
- public ValueDeclaration withSideEffects( Class<?>... sideEffects )
- {
- for( ValueAssemblyImpl assembly : assemblies )
- {
- assembly.sideEffects.addAll( asList( sideEffects ) );
- }
- return this;
- }
-
- @Override
- public ValueDeclaration withMixins( Class<?>... mixins )
- {
- for( ValueAssemblyImpl assembly : assemblies )
- {
- assembly.mixins.addAll( asList( mixins ) );
- }
- return this;
- }
-
- @Override
- public ValueDeclaration withTypes( Class<?>... types )
- {
- for( ValueAssemblyImpl assembly : assemblies )
- {
- assembly.types.addAll( asList( types ) );
- }
- return this;
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/zest-java/blob/061ddaa0/core/runtime/src/main/java/org/qi4j/runtime/composite/AbstractConstraintModel.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/qi4j/runtime/composite/AbstractConstraintModel.java b/core/runtime/src/main/java/org/qi4j/runtime/composite/AbstractConstraintModel.java
deleted file mode 100644
index d9ffbbd..0000000
--- a/core/runtime/src/main/java/org/qi4j/runtime/composite/AbstractConstraintModel.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (c) 2008, Rickard Öberg. All Rights Reserved.
- *
- * 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.qi4j.runtime.composite;
-
-import java.lang.annotation.Annotation;
-import org.qi4j.api.constraint.ConstraintDescriptor;
-import org.qi4j.functional.Visitable;
-import org.qi4j.functional.Visitor;
-
-/**
- * JAVADOC
- */
-public abstract class AbstractConstraintModel
- implements ConstraintDescriptor, Visitable<ConstraintDescriptor>
-{
- protected final Annotation annotation;
-
- public AbstractConstraintModel( Annotation annotation )
- {
- this.annotation = annotation;
- }
-
- @Override
- public Annotation annotation()
- {
- return annotation;
- }
-
- public abstract ConstraintInstance<?, ?> newInstance();
-
- @Override
- public <ThrowableType extends Throwable> boolean accept( Visitor<? super ConstraintDescriptor, ThrowableType> modelVisitor )
- throws ThrowableType
- {
- return modelVisitor.visit( this );
- }
-}
\ No newline at end of file