Skip to content
This repository was archived by the owner on May 12, 2021. It is now read-only.

Commit c76a0bf

Browse files
committed
Merge remote-tracking branch 'origin/develop' into develop
2 parents 3a26d21 + 4fb01aa commit c76a0bf

20 files changed

Lines changed: 170 additions & 285 deletions

File tree

core/api/src/main/java/org/apache/polygene/api/composite/CompositeDescriptor.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,15 @@
2020

2121
package org.apache.polygene.api.composite;
2222

23+
import org.apache.polygene.api.util.VisitableModelDescriptor;
24+
2325
import java.util.stream.Stream;
2426

2527
/**
2628
* Composite Descriptor.
2729
*/
2830
public interface CompositeDescriptor
29-
extends ModelDescriptor
31+
extends VisitableModelDescriptor
3032
{
3133
Class<?> primaryType();
3234

core/api/src/main/java/org/apache/polygene/api/object/ObjectDescriptor.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,12 @@
2121
package org.apache.polygene.api.object;
2222

2323
import org.apache.polygene.api.composite.ModelDescriptor;
24+
import org.apache.polygene.api.util.VisitableModelDescriptor;
2425

2526
/**
2627
* Object Descriptor.
2728
*/
2829
public interface ObjectDescriptor
29-
extends ModelDescriptor
30+
extends VisitableModelDescriptor
3031
{
3132
}

core/api/src/main/java/org/apache/polygene/api/service/ImportedServiceDescriptor.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,13 @@
2222

2323
import org.apache.polygene.api.composite.ModelDescriptor;
2424
import org.apache.polygene.api.identity.Identifiable;
25+
import org.apache.polygene.api.util.VisitableModelDescriptor;
2526

2627
/**
2728
* {@code ServiceDescriptor} provides meta information of a service.
2829
*/
2930
public interface ImportedServiceDescriptor
30-
extends ModelDescriptor, Identifiable
31+
extends VisitableModelDescriptor, Identifiable
3132
{
3233
Class<? extends ServiceImporter> serviceImporter();
3334

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
/*
2+
* Licensed to the Apache Software Foundation (ASF) under one
3+
* or more contributor license agreements. See the NOTICE file
4+
* distributed with this work for additional information
5+
* regarding copyright ownership. The ASF licenses this file
6+
* to you under the Apache License, Version 2.0 (the
7+
* "License"); you may not use this file except in compliance
8+
* with the License. You may obtain a copy of the License at
9+
*
10+
* http://www.apache.org/licenses/LICENSE-2.0
11+
*
12+
* Unless required by applicable law or agreed to in writing, software
13+
* distributed under the License is distributed on an "AS IS" BASIS,
14+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15+
* See the License for the specific language governing permissions and
16+
* limitations under the License.
17+
*
18+
*
19+
*/
20+
package org.apache.polygene.api.util;
21+
22+
import org.apache.polygene.api.composite.ModelDescriptor;
23+
24+
/**
25+
* A modeldescriptor, that is also part of a VisitableHierarchy
26+
*/
27+
public interface VisitableModelDescriptor
28+
extends ModelDescriptor, VisitableHierarchy<Object, Object>
29+
{
30+
}

core/runtime/src/main/java/org/apache/polygene/runtime/composite/CompositeModel.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
* JAVADOC
4848
*/
4949
public abstract class CompositeModel
50-
implements VisitableHierarchy<Object, Object>, Dependencies, CompositeDescriptor
50+
implements Dependencies, CompositeDescriptor
5151
{
5252
protected final ModuleDescriptor module;
5353
protected final MixinsModel mixinsModel;
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
/*
2+
* Licensed to the Apache Software Foundation (ASF) under one
3+
* or more contributor license agreements. See the NOTICE file
4+
* distributed with this work for additional information
5+
* regarding copyright ownership. The ASF licenses this file
6+
* to you under the Apache License, Version 2.0 (the
7+
* "License"); you may not use this file except in compliance
8+
* with the License. You may obtain a copy of the License at
9+
*
10+
* http://www.apache.org/licenses/LICENSE-2.0
11+
*
12+
* Unless required by applicable law or agreed to in writing, software
13+
* distributed under the License is distributed on an "AS IS" BASIS,
14+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15+
* See the License for the specific language governing permissions and
16+
* limitations under the License.
17+
*
18+
*
19+
*/
20+
21+
package org.apache.polygene.runtime.composite;
22+
23+
import org.apache.polygene.api.util.HierarchicalVisitor;
24+
import org.apache.polygene.api.util.VisitableHierarchy;
25+
import org.apache.polygene.api.util.VisitableModelDescriptor;
26+
27+
import java.util.List;
28+
import java.util.stream.Stream;
29+
30+
public abstract class CompositesModel<MD extends VisitableModelDescriptor>
31+
implements VisitableHierarchy<Object, Object>
32+
{
33+
private final List<MD> compositeModels;
34+
35+
public CompositesModel( List<MD> compositeModels)
36+
{
37+
this.compositeModels = compositeModels;
38+
}
39+
40+
@Override
41+
public final <ThrowableType extends Throwable> boolean accept( HierarchicalVisitor<? super Object, ? super Object, ThrowableType> modelVisitor )
42+
throws ThrowableType
43+
{
44+
if( modelVisitor.visitEnter( this ) )
45+
{
46+
for( MD compositeModel : compositeModels)
47+
{
48+
if( !compositeModel.accept( modelVisitor ) )
49+
{
50+
break;
51+
}
52+
}
53+
}
54+
return modelVisitor.visitLeave( this );
55+
}
56+
57+
public final Stream<MD> stream()
58+
{
59+
return compositeModels.stream();
60+
}
61+
}

core/runtime/src/main/java/org/apache/polygene/runtime/composite/TransientsModel.java

Lines changed: 2 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -21,48 +21,14 @@
2121
package org.apache.polygene.runtime.composite;
2222

2323
import java.util.List;
24-
import java.util.stream.Stream;
25-
import org.apache.polygene.api.composite.TransientDescriptor;
26-
import org.apache.polygene.api.util.HierarchicalVisitor;
27-
import org.apache.polygene.api.util.VisitableHierarchy;
2824

2925
/**
3026
* JAVADOC
3127
*/
32-
public class TransientsModel
33-
implements VisitableHierarchy<Object, Object>
28+
public class TransientsModel extends CompositesModel<TransientModel>
3429
{
35-
private final List<TransientModel> transientModels;
36-
3730
public TransientsModel( List<TransientModel> transientModels )
3831
{
39-
this.transientModels = transientModels;
40-
}
41-
42-
public Stream<TransientModel> models()
43-
{
44-
return transientModels.stream();
45-
}
46-
47-
@Override
48-
public <ThrowableType extends Throwable> boolean accept( HierarchicalVisitor<? super Object, ? super Object, ThrowableType> modelVisitor )
49-
throws ThrowableType
50-
{
51-
if( modelVisitor.visitEnter( this ) )
52-
{
53-
for( TransientModel transientModel : transientModels )
54-
{
55-
if( !transientModel.accept( modelVisitor ) )
56-
{
57-
break;
58-
}
59-
}
60-
}
61-
return modelVisitor.visitLeave( this );
62-
}
63-
64-
public Stream<? extends TransientDescriptor> stream()
65-
{
66-
return transientModels.stream();
32+
super(transientModels);
6733
}
6834
}

core/runtime/src/main/java/org/apache/polygene/runtime/entity/EntitiesModel.java

Lines changed: 5 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -20,49 +20,19 @@
2020

2121
package org.apache.polygene.runtime.entity;
2222

23-
import java.util.List;
24-
import java.util.stream.Stream;
25-
import org.apache.polygene.api.entity.EntityDescriptor;
26-
import org.apache.polygene.api.util.HierarchicalVisitor;
2723
import org.apache.polygene.api.util.VisitableHierarchy;
24+
import org.apache.polygene.runtime.composite.CompositesModel;
25+
26+
import java.util.List;
2827

2928
/**
3029
* Model of entities in a particular Module.
3130
*/
32-
public class EntitiesModel
31+
public class EntitiesModel extends CompositesModel<EntityModel>
3332
implements VisitableHierarchy<Object, Object>
3433
{
35-
private final List<EntityModel> entityModels;
36-
3734
public EntitiesModel( List<EntityModel> entityModels )
3835
{
39-
this.entityModels = entityModels;
40-
}
41-
42-
public Stream<EntityModel> models()
43-
{
44-
return entityModels.stream();
45-
}
46-
47-
@Override
48-
public <ThrowableType extends Throwable> boolean accept( HierarchicalVisitor<? super Object, ? super Object, ThrowableType> modelVisitor )
49-
throws ThrowableType
50-
{
51-
if( modelVisitor.visitEnter( this ) )
52-
{
53-
for( EntityModel entityModel : entityModels )
54-
{
55-
if( !entityModel.accept( modelVisitor ) )
56-
{
57-
break;
58-
}
59-
}
60-
}
61-
return modelVisitor.visitLeave( this );
62-
}
63-
64-
public Stream<? extends EntityDescriptor> stream()
65-
{
66-
return entityModels.stream();
36+
super(entityModels);
6737
}
6838
}

core/runtime/src/main/java/org/apache/polygene/runtime/object/ObjectModel.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
* JAVADOC
4040
*/
4141
public final class ObjectModel
42-
implements ObjectDescriptor, VisitableHierarchy<Object, Object>
42+
implements ObjectDescriptor
4343
{
4444
private final ModuleDescriptor module;
4545
private final Class<?> objectType;

core/runtime/src/main/java/org/apache/polygene/runtime/object/ObjectsModel.java

Lines changed: 5 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -20,43 +20,19 @@
2020

2121
package org.apache.polygene.runtime.object;
2222

23-
import java.util.List;
24-
import java.util.stream.Stream;
25-
import org.apache.polygene.api.util.HierarchicalVisitor;
2623
import org.apache.polygene.api.util.VisitableHierarchy;
24+
import org.apache.polygene.runtime.composite.CompositesModel;
25+
26+
import java.util.List;
2727

2828
/**
2929
* JAVADOC
3030
*/
31-
public class ObjectsModel
31+
public class ObjectsModel extends CompositesModel<ObjectModel>
3232
implements VisitableHierarchy<Object, Object>
3333
{
34-
private final List<ObjectModel> objectModels;
35-
3634
public ObjectsModel( List<ObjectModel> objectModels )
3735
{
38-
this.objectModels = objectModels;
39-
}
40-
41-
@Override
42-
public <ThrowableType extends Throwable> boolean accept( HierarchicalVisitor<? super Object, ? super Object, ThrowableType> visitor )
43-
throws ThrowableType
44-
{
45-
if( visitor.visitEnter( this ) )
46-
{
47-
for( ObjectModel objectModel : objectModels )
48-
{
49-
if( !objectModel.accept( visitor ) )
50-
{
51-
break;
52-
}
53-
}
54-
}
55-
return visitor.visitLeave( this );
56-
}
57-
58-
public Stream<ObjectModel> models()
59-
{
60-
return objectModels.stream();
36+
super(objectModels);
6137
}
6238
}

0 commit comments

Comments
 (0)