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 2016/12/17 10:27:38 UTC
[02/81] [abbrv] [partial] zest-java git commit: ZEST-195 ;
Replace all "zest" with "polygene"
http://git-wip-us.apache.org/repos/asf/zest-java/blob/1c722f44/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/EntityDeclarationImpl.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/EntityDeclarationImpl.java b/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/EntityDeclarationImpl.java
deleted file mode 100644
index 24f384b..0000000
--- a/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/EntityDeclarationImpl.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.apache.zest.runtime.bootstrap;
-
-import org.apache.zest.api.common.Visibility;
-import org.apache.zest.bootstrap.EntityDeclaration;
-
-import static java.util.Arrays.asList;
-
-/**
- * Declaration of a Composite. Created by {@link org.apache.zest.bootstrap.ModuleAssembly#transients(Class[])}.
- */
-public final class EntityDeclarationImpl
- implements EntityDeclaration
-{
- private final Iterable<EntityAssemblyImpl> entities;
-
- public EntityDeclarationImpl( Iterable<EntityAssemblyImpl> entities )
- {
- this.entities = entities;
- }
-
- @Override
- public EntityDeclaration setMetaInfo( Object info )
- {
- for( EntityAssemblyImpl entity : entities )
- {
- entity.metaInfo.set( info );
- }
- return this;
- }
-
- @Override
- public EntityDeclaration visibleIn( Visibility visibility )
- {
- for( EntityAssemblyImpl entity : entities )
- {
- entity.visibility = visibility;
- }
- return this;
- }
-
- @Override
- public EntityDeclaration withConcerns( Class<?>... concerns )
- {
- for( EntityAssemblyImpl entity : entities )
- {
- entity.concerns.addAll( asList( concerns ) );
- }
- return this;
- }
-
- @Override
- public EntityDeclaration withSideEffects( Class<?>... sideEffects )
- {
- for( EntityAssemblyImpl entity : entities )
- {
- entity.sideEffects.addAll( asList( sideEffects ) );
- }
- return this;
- }
-
- @Override
- public EntityDeclaration withMixins( Class<?>... mixins )
- {
- for( EntityAssemblyImpl entity : entities )
- {
- entity.mixins.addAll( asList( mixins ) );
- }
- return this;
- }
-
- @Override
- public EntityDeclaration withTypes( Class<?>... types )
- {
- for( EntityAssemblyImpl entity : entities )
- {
- entity.types.addAll( asList( types ) );
- }
- return this;
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/zest-java/blob/1c722f44/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/ImplementsMethodAppliesToFilter.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/ImplementsMethodAppliesToFilter.java b/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/ImplementsMethodAppliesToFilter.java
deleted file mode 100644
index 6c55489..0000000
--- a/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/ImplementsMethodAppliesToFilter.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.apache.zest.runtime.bootstrap;
-
-import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
-import org.apache.zest.api.common.AppliesToFilter;
-
-/**
- * JAVADOC
- */
-final class ImplementsMethodAppliesToFilter
- implements AppliesToFilter
-{
- @Override
- public boolean appliesTo( Method method, Class<?> mixin, Class<?> compositeType, Class<?> fragmentClass )
- {
- try
- {
- return !Modifier.isAbstract( fragmentClass.getMethod( method.getName(), method.getParameterTypes() )
- .getModifiers() );
- }
- catch( NoSuchMethodException e )
- {
- return false;
- }
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/zest-java/blob/1c722f44/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/ImportedServiceAssemblyImpl.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/ImportedServiceAssemblyImpl.java b/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/ImportedServiceAssemblyImpl.java
deleted file mode 100644
index 4890a53..0000000
--- a/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/ImportedServiceAssemblyImpl.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.apache.zest.runtime.bootstrap;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.stream.Stream;
-import org.apache.zest.api.activation.Activator;
-import org.apache.zest.api.common.InvalidApplicationException;
-import org.apache.zest.api.common.MetaInfo;
-import org.apache.zest.api.common.Visibility;
-import org.apache.zest.api.identity.Identity;
-import org.apache.zest.api.identity.StringIdentity;
-import org.apache.zest.api.service.ServiceImporter;
-import org.apache.zest.api.service.importer.InstanceImporter;
-import org.apache.zest.api.structure.ModuleDescriptor;
-import org.apache.zest.bootstrap.ImportedServiceAssembly;
-import org.apache.zest.runtime.activation.ActivatorsModel;
-import org.apache.zest.runtime.service.ImportedServiceModel;
-
-/**
- * Declaration of an imported Service.
- *
- * Created by {@link org.apache.zest.runtime.bootstrap.ModuleAssemblyImpl#importedServices(Class[])}.
- */
-public final class ImportedServiceAssemblyImpl
- implements ImportedServiceAssembly
-{
- private final Class<?> serviceType;
- private final ModuleAssemblyImpl moduleAssembly;
- @SuppressWarnings( "raw" )
- Class<? extends ServiceImporter> serviceProvider = InstanceImporter.class;
- String identity;
- boolean importOnStartup = false;
- MetaInfo metaInfo = new MetaInfo();
- Visibility visibility = Visibility.module;
- List<Class<? extends Activator<?>>> activators = new ArrayList<>();
-
- public ImportedServiceAssemblyImpl( Class<?> serviceType, ModuleAssemblyImpl moduleAssembly )
- {
- this.serviceType = serviceType;
- this.moduleAssembly = moduleAssembly;
- }
-
- @Override
- public Stream<Class<?>> types()
- {
- return Stream.of( serviceType );
- }
-
- @SuppressWarnings( { "raw", "unchecked" } )
- void addImportedServiceModel( ModuleDescriptor module, List<ImportedServiceModel> serviceModels )
- {
- try
- {
- Identity id;
- if( identity == null )
- {
- id = generateId( serviceModels, serviceType );
- }
- else
- {
- id = new StringIdentity( identity );
- }
-
- ImportedServiceModel serviceModel = new ImportedServiceModel( module,
- serviceType,
- visibility,
- serviceProvider,
- id,
- importOnStartup,
- new MetaInfo( metaInfo ).withAnnotations( serviceType ),
- new ActivatorsModel( activators ),
- moduleAssembly.name() );
- serviceModels.add( serviceModel );
- }
- catch( Exception e )
- {
- throw new InvalidApplicationException( "Could not register " + serviceType.getName(), e );
- }
- }
-
- @SuppressWarnings( "raw" )
- private Identity generateId( List<ImportedServiceModel> serviceModels, Class serviceType )
- {
- // Find reference that is not yet used
- int idx = 0;
- Identity id = new StringIdentity( serviceType.getSimpleName() );
- boolean invalid;
- do
- {
- invalid = false;
- for( ImportedServiceModel serviceModel : serviceModels )
- {
- if( serviceModel.identity().equals( id ) )
- {
- idx++;
- id = new StringIdentity( serviceType.getSimpleName() + "_" + idx );
- invalid = true;
- break;
- }
- }
- }
- while( invalid );
- return id;
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/zest-java/blob/1c722f44/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/ImportedServiceDeclarationImpl.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/ImportedServiceDeclarationImpl.java b/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/ImportedServiceDeclarationImpl.java
deleted file mode 100644
index 4aa6b4f..0000000
--- a/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/ImportedServiceDeclarationImpl.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.apache.zest.runtime.bootstrap;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import org.apache.zest.api.activation.Activator;
-import org.apache.zest.api.common.Visibility;
-import org.apache.zest.api.service.ServiceImporter;
-import org.apache.zest.api.service.qualifier.ServiceTags;
-import org.apache.zest.bootstrap.ImportedServiceDeclaration;
-
-/**
- * Declaration of an imported Service.
- */
-public final class ImportedServiceDeclarationImpl
- implements ImportedServiceDeclaration
-{
- private final Iterable<ImportedServiceAssemblyImpl> assemblies;
-
- public ImportedServiceDeclarationImpl( Iterable<ImportedServiceAssemblyImpl> assemblies )
- {
- this.assemblies = assemblies;
- }
-
- @Override
- public ImportedServiceDeclaration importOnStartup()
- {
- for( ImportedServiceAssemblyImpl assembly : assemblies )
- {
- assembly.importOnStartup = true;
- }
- return this;
- }
-
- @Override
- public ImportedServiceDeclaration visibleIn( Visibility visibility )
- {
- for( ImportedServiceAssemblyImpl assembly : assemblies )
- {
- assembly.visibility = visibility;
- }
- return this;
- }
-
- @Override
- @SuppressWarnings( "raw" )
- public ImportedServiceDeclaration importedBy( Class<? extends ServiceImporter> sip )
- {
- for( ImportedServiceAssemblyImpl assembly : assemblies )
- {
- assembly.serviceProvider = sip;
- }
- return this;
- }
-
- @Override
- public ImportedServiceDeclaration identifiedBy( String identity )
- {
- for( ImportedServiceAssemblyImpl assembly : assemblies )
- {
- assembly.identity = identity;
- }
- return this;
- }
-
- @Override
- public ImportedServiceDeclaration taggedWith( String... tags )
- {
- for( ImportedServiceAssemblyImpl serviceAssembly : assemblies )
- {
- ServiceTags previousTags = serviceAssembly.metaInfo.get( ServiceTags.class );
- if( previousTags != null )
- {
- List<String> tagList = new ArrayList<>();
- Collections.addAll( tagList, previousTags.tags() );
- Collections.addAll( tagList, tags );
- serviceAssembly.metaInfo.set( new ServiceTags( tagList.toArray( new String[ tagList.size() ] ) ) );
- }
- else
- {
- serviceAssembly.metaInfo.set( new ServiceTags( tags ) );
- }
- }
-
- return this;
- }
-
- @Override
- public ImportedServiceDeclaration setMetaInfo( Object serviceAttribute )
- {
- for( ImportedServiceAssemblyImpl assembly : assemblies )
- {
- assembly.metaInfo.set( serviceAttribute );
- }
- return this;
- }
-
- @Override
- @SafeVarargs
- public final ImportedServiceDeclaration withActivators( Class<? extends Activator<?>>... activators )
- {
- for ( ImportedServiceAssemblyImpl serviceAssembly : assemblies ) {
- serviceAssembly.activators.addAll( Arrays.asList( activators ) );
- }
- return this;
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/zest-java/blob/1c722f44/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/LayerAssemblyImpl.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/LayerAssemblyImpl.java b/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/LayerAssemblyImpl.java
deleted file mode 100644
index e6f0b8c..0000000
--- a/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/LayerAssemblyImpl.java
+++ /dev/null
@@ -1,630 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.apache.zest.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 java.util.function.Predicate;
-import org.apache.zest.api.activation.Activator;
-import org.apache.zest.api.common.MetaInfo;
-import org.apache.zest.api.common.Visibility;
-import org.apache.zest.api.service.ServiceImporter;
-import org.apache.zest.api.structure.Layer;
-import org.apache.zest.bootstrap.ApplicationAssembly;
-import org.apache.zest.bootstrap.AssemblyVisitor;
-import org.apache.zest.bootstrap.EntityAssembly;
-import org.apache.zest.bootstrap.EntityDeclaration;
-import org.apache.zest.bootstrap.ImportedServiceAssembly;
-import org.apache.zest.bootstrap.ImportedServiceDeclaration;
-import org.apache.zest.bootstrap.LayerAssembly;
-import org.apache.zest.bootstrap.ModuleAssembly;
-import org.apache.zest.bootstrap.ObjectAssembly;
-import org.apache.zest.bootstrap.ObjectDeclaration;
-import org.apache.zest.bootstrap.ServiceAssembly;
-import org.apache.zest.bootstrap.ServiceDeclaration;
-import org.apache.zest.bootstrap.TransientAssembly;
-import org.apache.zest.bootstrap.TransientDeclaration;
-import org.apache.zest.bootstrap.ValueAssembly;
-import org.apache.zest.bootstrap.ValueDeclaration;
-
-/**
- * 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.apache.zest.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( Predicate<? 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( Predicate<? 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( Predicate<? 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( Predicate<? 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( Predicate<? 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( Predicate<? 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/1c722f44/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/ModuleAssemblyImpl.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/ModuleAssemblyImpl.java b/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/ModuleAssemblyImpl.java
deleted file mode 100644
index a4b6ecf..0000000
--- a/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/ModuleAssemblyImpl.java
+++ /dev/null
@@ -1,645 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.apache.zest.runtime.bootstrap;
-
-import java.lang.reflect.UndeclaredThrowableException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.function.Predicate;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-import org.apache.zest.api.activation.Activator;
-import org.apache.zest.api.common.MetaInfo;
-import org.apache.zest.api.common.Visibility;
-import org.apache.zest.api.composite.TransientComposite;
-import org.apache.zest.api.entity.EntityComposite;
-import org.apache.zest.api.identity.HasIdentity;
-import org.apache.zest.api.identity.Identity;
-import org.apache.zest.api.identity.IdentityGenerator;
-import org.apache.zest.api.identity.StringIdentity;
-import org.apache.zest.api.service.DuplicateServiceIdentityException;
-import org.apache.zest.api.structure.Module;
-import org.apache.zest.api.type.HasTypes;
-import org.apache.zest.api.type.MatchTypeSpecification;
-import org.apache.zest.api.unitofwork.UnitOfWorkFactory;
-import org.apache.zest.api.value.ValueComposite;
-import org.apache.zest.bootstrap.Assembler;
-import org.apache.zest.bootstrap.AssemblyException;
-import org.apache.zest.bootstrap.AssemblySpecifications;
-import org.apache.zest.bootstrap.AssemblyVisitor;
-import org.apache.zest.bootstrap.ConfigurationDeclaration;
-import org.apache.zest.bootstrap.EntityAssembly;
-import org.apache.zest.bootstrap.EntityDeclaration;
-import org.apache.zest.bootstrap.ImportedServiceAssembly;
-import org.apache.zest.bootstrap.ImportedServiceDeclaration;
-import org.apache.zest.bootstrap.LayerAssembly;
-import org.apache.zest.bootstrap.MetaInfoDeclaration;
-import org.apache.zest.bootstrap.MixinDeclaration;
-import org.apache.zest.bootstrap.ModuleAssembly;
-import org.apache.zest.bootstrap.ObjectAssembly;
-import org.apache.zest.bootstrap.ObjectDeclaration;
-import org.apache.zest.bootstrap.ServiceAssembly;
-import org.apache.zest.bootstrap.ServiceDeclaration;
-import org.apache.zest.bootstrap.TransientAssembly;
-import org.apache.zest.bootstrap.TransientDeclaration;
-import org.apache.zest.bootstrap.ValueAssembly;
-import org.apache.zest.bootstrap.ValueDeclaration;
-import org.apache.zest.bootstrap.identity.DefaultIdentityGeneratorAssembler;
-import org.apache.zest.bootstrap.unitofwork.DefaultUnitOfWorkAssembler;
-import org.apache.zest.runtime.activation.ActivatorsModel;
-import org.apache.zest.runtime.composite.TransientModel;
-import org.apache.zest.runtime.composite.TransientsModel;
-import org.apache.zest.runtime.entity.EntitiesModel;
-import org.apache.zest.runtime.entity.EntityModel;
-import org.apache.zest.runtime.object.ObjectModel;
-import org.apache.zest.runtime.object.ObjectsModel;
-import org.apache.zest.runtime.service.ImportedServiceModel;
-import org.apache.zest.runtime.service.ImportedServicesModel;
-import org.apache.zest.runtime.service.ServiceModel;
-import org.apache.zest.runtime.service.ServicesModel;
-import org.apache.zest.runtime.structure.LayerModel;
-import org.apache.zest.runtime.structure.ModuleModel;
-import org.apache.zest.runtime.value.ValueModel;
-import org.apache.zest.runtime.value.ValuesModel;
-
-import static java.util.Arrays.asList;
-import static java.util.Collections.singleton;
-import static java.util.stream.Collectors.toList;
-
-/**
- * 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.
- */
-final class ModuleAssemblyImpl
- implements ModuleAssembly
-{
- private static HashMap<Class, Assembler> defaultAssemblers;
-
- 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();
-
- static
- {
- defaultAssemblers = new HashMap<>();
- defaultAssemblers.put(UnitOfWorkFactory.class, new DefaultUnitOfWorkAssembler());
- defaultAssemblers.put(IdentityGenerator.class, new DefaultIdentityGeneratorAssembler());
- }
-
- 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( asList( activators ) );
- return this;
- }
-
- @Override
- @SuppressWarnings("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(Predicate<? super ValueAssembly> specification)
- {
- List<ValueAssemblyImpl> assemblies = valueAssemblies.values().stream()
- .filter(specification::test)
- .collect(toList());
- 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(Predicate<? super TransientAssembly> specification)
- {
- List<TransientAssemblyImpl> assemblies = transientAssemblies.values().stream()
- .filter(specification::test)
- .collect(toList());
-
- 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(Predicate<? super EntityAssembly> specification)
- {
- List<EntityAssemblyImpl> assemblies = entityAssemblies.values().stream()
- .filter(specification::test)
- .collect(toList());
-
- return new EntityDeclarationImpl(assemblies);
- }
-
- @Override
- @SuppressWarnings("unchecked")
- 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(HasIdentity.class);
- }
- }
-
- return new ConfigurationDeclarationImpl(entityAssemblyList, valueAssemblyList);
- }
-
- @Override
- public ConfigurationDeclaration configurations(Predicate<HasTypes> specification)
- {
- Predicate<HasTypes> isConfigurationComposite = new MatchTypeSpecification(HasIdentity.class);
- specification = specification.and(isConfigurationComposite);
- List<EntityAssemblyImpl> entityAssmblyList = new ArrayList<>();
- for (EntityAssemblyImpl entityAssembly : entityAssemblies.values())
- {
- if (specification.test(entityAssembly))
- {
- entityAssmblyList.add(entityAssembly);
- }
- }
- List<ValueAssemblyImpl> valueAssemblyList = new ArrayList<>();
- for (ValueAssemblyImpl transientAssembly : valueAssemblies.values())
- {
- if (specification.test(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 Polygene 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(Predicate<? super ObjectAssembly> specification)
- {
- List<ObjectAssemblyImpl> assemblies = objectAssemblies.values().stream()
- .filter(specification::test)
- .collect(toList());
-
- 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( serviceAssemblies.stream().anyMatch( AssemblySpecifications.ofAnyType( serviceType ) ) )
- {
- serviceAssemblies.stream().filter( AssemblySpecifications.ofAnyType( serviceType ) )
- .forEach( assemblies::add );
- }
- else
- {
- ServiceAssemblyImpl serviceAssembly = new ServiceAssemblyImpl(serviceType);
- serviceAssemblies.add(serviceAssembly);
- assemblies.add(serviceAssembly);
- }
- }
-
- return new ServiceDeclarationImpl(assemblies);
- }
-
- @Override
- public ServiceDeclaration services(Predicate<? super ServiceAssembly> specification)
- {
- List<ServiceAssemblyImpl> assemblies = serviceAssemblies.stream()
- .filter(specification::test)
- .collect(toList());
- 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(Predicate<? super ImportedServiceAssembly> specification)
- {
- List<ImportedServiceAssemblyImpl> assemblies = importedServiceAssemblies.values().stream()
- .filter(specification::test)
- .collect(toList());
-
- 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( singleton( compositeDeclaration ) ) );
- }
-
- for( EntityAssemblyImpl entityDeclaration : entityAssemblies.values() )
- {
- visitor.visitEntity( new EntityDeclarationImpl( singleton( entityDeclaration ) ) );
- }
-
- for( ObjectAssemblyImpl objectDeclaration : objectAssemblies.values() )
- {
- visitor.visitObject( new ObjectDeclarationImpl( singleton( objectDeclaration ) ) );
- }
-
- for( ServiceAssemblyImpl serviceDeclaration : serviceAssemblies )
- {
- visitor.visitService( new ServiceDeclarationImpl( singleton( serviceDeclaration ) ) );
- }
-
- for( ImportedServiceAssemblyImpl importedServiceDeclaration : importedServiceAssemblies.values() )
- {
- visitor.visitImportedService( new ImportedServiceDeclarationImpl( singleton( importedServiceDeclaration ) ) );
- }
-
- for( ValueAssemblyImpl valueDeclaration : valueAssemblies.values() )
- {
- visitor.visitValue( new ValueDeclarationImpl( singleton( valueDeclaration ) ) );
- }
- }
-
- @SuppressWarnings("OptionalGetWithoutIsPresent")
- ModuleModel assembleModule(LayerModel layerModel, AssemblyHelper helper)
- throws AssemblyException
- {
- addDefaultAssemblers();
- 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<>();
- List<EntityModel> entityModels = new ArrayList<>();
- ModuleModel moduleModel = new ModuleModel(name,
- metaInfo,
- layerModel,
- new ActivatorsModel<>(activators),
- new TransientsModel(transientModels),
- new EntitiesModel(entityModels),
- new ObjectsModel(objectModels),
- new ValuesModel(valueModels),
- new ServicesModel(serviceModels),
- new ImportedServicesModel(importedServiceModels));
-
- if (name == null)
- {
- throw new AssemblyException("Module must have name set");
- }
-
- transientModels.addAll(transientAssemblies.values().stream()
- .map(composite -> composite.newTransientModel(moduleModel, metaInfoDeclaration, helper))
- .collect(toList()));
-
- valueModels.addAll(valueAssemblies.values().stream()
- .map(value -> value.newValueModel(moduleModel, metaInfoDeclaration, helper))
- .collect(toList()));
-
- entityModels.addAll(entityAssemblies.values().stream()
- .map(entityDeclaration -> entityDeclaration.newEntityModel(moduleModel,
- metaInfoDeclaration,
- metaInfoDeclaration,
- metaInfoDeclaration,
- metaInfoDeclaration,
- helper))
- .collect(Collectors.toList()));
-
- for (ObjectAssemblyImpl objectDeclaration : objectAssemblies.values())
- {
- objectDeclaration.addObjectModel(moduleModel, objectModels);
- }
-
- for (ServiceAssemblyImpl serviceDeclaration : serviceAssemblies)
- {
- if (serviceDeclaration.identity == null)
- {
- serviceDeclaration.identity = generateId(serviceDeclaration.types());
- }
-
- serviceModels.add(serviceDeclaration.newServiceModel(moduleModel, metaInfoDeclaration, helper));
- }
-
- for (ImportedServiceAssemblyImpl importedServiceDeclaration : importedServiceAssemblies.values())
- {
- importedServiceDeclaration.addImportedServiceModel(moduleModel, importedServiceModels);
- }
-
- // Check for duplicate service identities
- Set<String> identities = new HashSet<>();
- for (ServiceModel serviceModel : serviceModels)
- {
- String identity = serviceModel.identity().toString();
- if (identities.contains(identity))
- {
- throw new DuplicateServiceIdentityException(
- "Duplicated service reference: " + identity + " in module " + moduleModel.name()
- );
- }
- identities.add(identity);
- }
- for (ImportedServiceModel serviceModel : importedServiceModels)
- {
- String identity = serviceModel.identity().toString();
- if (identities.contains(identity))
- {
- throw new DuplicateServiceIdentityException(
- "Duplicated service reference: " + identity + " in module " + moduleModel.name()
- );
- }
- identities.add(identity);
- }
-
- importedServiceModels
- .stream()
- .filter(
- importedServiceModel ->
- objectModels.stream().noneMatch( model -> model.types().findFirst().get()
- .equals( importedServiceModel.serviceImporter() ) ) )
- .forEach(
- importedServiceModel ->
- objectModels.add( new ObjectModel( moduleModel, importedServiceModel.serviceImporter(),
- Visibility.module, new MetaInfo() ) ) );
-
- return moduleModel;
- }
-
- private void addDefaultAssemblers()
- throws AssemblyException
- {
- try
- {
- defaultAssemblers.entrySet().stream()
- .filter(entry -> serviceAssemblies.stream().noneMatch(serviceAssembly -> serviceAssembly.hasType(entry.getKey())))
- .forEach(entry ->
- {
- try
- {
- entry.getValue().assemble(this);
- }
- catch (AssemblyException e)
- {
- throw new UndeclaredThrowableException(e);
- }
- });
- }
- catch (UndeclaredThrowableException e)
- {
- throw (AssemblyException) e.getUndeclaredThrowable();
- }
- }
-
- private Identity generateId(Stream<Class<?>> serviceTypes)
- {
- // Find service reference that is not yet used
- Class<?> serviceType = serviceTypes.findFirst()
- .orElse(null); // Use the first, which *SHOULD* be the main serviceType
- int idx = 0;
- Identity id = new StringIdentity(serviceType.getSimpleName());
- boolean invalid;
- do
- {
- invalid = false;
- for (ServiceAssemblyImpl serviceAssembly : serviceAssemblies)
- {
- if (serviceAssembly.identity() != null && serviceAssembly.identity().equals(id))
- {
- idx++;
- id = new StringIdentity(serviceType.getSimpleName() + "_" + idx);
- invalid = true;
- break;
- }
- }
- }
- while (invalid);
- return id;
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/1c722f44/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/ObjectAssemblyImpl.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/ObjectAssemblyImpl.java b/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/ObjectAssemblyImpl.java
deleted file mode 100644
index f562696..0000000
--- a/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/ObjectAssemblyImpl.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.apache.zest.runtime.bootstrap;
-
-import java.lang.reflect.Modifier;
-import java.util.List;
-import java.util.stream.Stream;
-import org.apache.zest.api.common.InvalidApplicationException;
-import org.apache.zest.api.common.MetaInfo;
-import org.apache.zest.api.common.Visibility;
-import org.apache.zest.api.composite.Composite;
-import org.apache.zest.api.structure.ModuleDescriptor;
-import org.apache.zest.bootstrap.ObjectAssembly;
-import org.apache.zest.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 Stream<Class<?>> types()
- {
- return Stream.of( objectType );
- }
-
- void addObjectModel( ModuleDescriptor module, List<ObjectModel> objectModels )
- {
- try
- {
- ObjectModel objectModel = new ObjectModel( module, 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/1c722f44/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/ObjectDeclarationImpl.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/ObjectDeclarationImpl.java b/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/ObjectDeclarationImpl.java
deleted file mode 100644
index a339006..0000000
--- a/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/ObjectDeclarationImpl.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.apache.zest.runtime.bootstrap;
-
-import org.apache.zest.api.common.Visibility;
-import org.apache.zest.bootstrap.ObjectDeclaration;
-
-/**
- * Declaration of an Object. Created by {@link org.apache.zest.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/1c722f44/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/OrAppliesToFilter.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/OrAppliesToFilter.java b/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/OrAppliesToFilter.java
deleted file mode 100644
index 6cdaed7..0000000
--- a/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/OrAppliesToFilter.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.apache.zest.runtime.bootstrap;
-
-import java.lang.reflect.Method;
-import org.apache.zest.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/1c722f44/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/ServiceAssemblyImpl.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/ServiceAssemblyImpl.java b/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/ServiceAssemblyImpl.java
deleted file mode 100644
index 5d5b2e8..0000000
--- a/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/ServiceAssemblyImpl.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.apache.zest.runtime.bootstrap;
-
-import java.lang.reflect.Type;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-import org.apache.zest.api.activation.Activator;
-import org.apache.zest.api.activation.Activators;
-import org.apache.zest.api.common.InvalidApplicationException;
-import org.apache.zest.api.identity.Identity;
-import org.apache.zest.api.service.ServiceComposite;
-import org.apache.zest.api.util.Annotations;
-import org.apache.zest.api.util.Classes;
-import org.apache.zest.bootstrap.ServiceAssembly;
-import org.apache.zest.bootstrap.StateDeclarations;
-import org.apache.zest.runtime.activation.ActivatorsModel;
-import org.apache.zest.runtime.service.ServiceModel;
-import org.apache.zest.runtime.structure.ModuleModel;
-
-/**
- * Assembly of a Service.
- */
-public final class ServiceAssemblyImpl extends CompositeAssemblyImpl
- implements ServiceAssembly
-{
- Identity 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 Identity identity()
- {
- return identity;
- }
-
- @SuppressWarnings( { "raw", "unchecked" } )
- ServiceModel newServiceModel( ModuleModel module, StateDeclarations stateDeclarations, AssemblyHelper helper )
- {
- try
- {
- buildComposite( helper, stateDeclarations );
- List<Class<? extends Activator<?>>> activatorClasses = Stream
- .concat( activators.stream(), activatorsDeclarations( types ) )
- .collect( Collectors.toList() );
- return new ServiceModel( module, types, visibility, metaInfo,
- new ActivatorsModel( activatorClasses ),
- mixinsModel, stateModel, compositeMethodsModel,
- identity, instantiateOnStartup );
- }
- catch( Exception e )
- {
- throw new InvalidApplicationException( "Could not register " + types, e );
- }
- }
-
- private Stream<Class<? extends Activator<?>>> activatorsDeclarations( List<? extends Class<?>> types )
- {
- return types.stream()
- .flatMap( Classes::typesOf )
- //.filter( type -> Annotations.annotationOn( type, Activators.class ) == null )
- .flatMap( this::getAnnotations );
- }
-
- private Stream<? extends Class<? extends Activator<?>>> getAnnotations( Type type )
- {
- Activators activators = Annotations.annotationOn( type, Activators.class );
- if( activators == null )
- {
- return Stream.empty();
- }
- return Arrays.stream( activators.value() );
- }
-
-
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/1c722f44/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/ServiceDeclarationImpl.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/ServiceDeclarationImpl.java b/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/ServiceDeclarationImpl.java
deleted file mode 100644
index 0b015ba..0000000
--- a/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/ServiceDeclarationImpl.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.apache.zest.runtime.bootstrap;
-
-import java.util.ArrayList;
-import java.util.List;
-import org.apache.zest.api.activation.Activator;
-import org.apache.zest.api.common.Visibility;
-import org.apache.zest.api.identity.StringIdentity;
-import org.apache.zest.api.service.qualifier.ServiceTags;
-import org.apache.zest.bootstrap.ServiceDeclaration;
-
-import static java.util.Arrays.asList;
-
-/**
- * Declaration of a Service. Created by {@link org.apache.zest.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 = new StringIdentity( 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/1c722f44/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/TransientAssemblyImpl.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/TransientAssemblyImpl.java b/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/TransientAssemblyImpl.java
deleted file mode 100644
index f2b531d..0000000
--- a/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/TransientAssemblyImpl.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.apache.zest.runtime.bootstrap;
-
-import org.apache.zest.api.common.InvalidApplicationException;
-import org.apache.zest.api.composite.TransientComposite;
-import org.apache.zest.api.structure.ModuleDescriptor;
-import org.apache.zest.bootstrap.StateDeclarations;
-import org.apache.zest.bootstrap.TransientAssembly;
-import org.apache.zest.runtime.association.AssociationsModel;
-import org.apache.zest.runtime.association.ManyAssociationsModel;
-import org.apache.zest.runtime.association.NamedAssociationsModel;
-import org.apache.zest.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( ModuleDescriptor module,
- StateDeclarations stateDeclarations,
- AssemblyHelper helper
- )
- {
- try
- {
- buildComposite( helper, stateDeclarations );
- return new TransientModel(
- module, types, visibility, metaInfo, mixinsModel, stateModel, compositeMethodsModel );
- }
- catch( Exception e )
- {
- throw new InvalidApplicationException( "Could not register " + types, e );
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/1c722f44/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/TransientDeclarationImpl.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/TransientDeclarationImpl.java b/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/TransientDeclarationImpl.java
deleted file mode 100644
index 640f906..0000000
--- a/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/TransientDeclarationImpl.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.apache.zest.runtime.bootstrap;
-
-import org.apache.zest.api.common.Visibility;
-import org.apache.zest.bootstrap.TransientDeclaration;
-
-import static java.util.Arrays.asList;
-
-/**
- * Declaration of a Composite. Created by {@link org.apache.zest.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/1c722f44/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/TypeCheckAppliesToFilter.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/TypeCheckAppliesToFilter.java b/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/TypeCheckAppliesToFilter.java
deleted file mode 100644
index a934803..0000000
--- a/core/runtime/src/main/java/org/apache/zest/runtime/bootstrap/TypeCheckAppliesToFilter.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.apache.zest.runtime.bootstrap;
-
-import java.lang.reflect.Method;
-import org.apache.zest.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 );
- }
-}