Skip to content

Commit 4f5b9fe

Browse files
CommonAPI-Tools 3.1.10.2
1 parent 3cbe896 commit 4f5b9fe

File tree

7 files changed

+65
-30
lines changed

7 files changed

+65
-30
lines changed

org.genivi.commonapi.core/src-gen/org/genivi/commonapi/core/DeploymentInterfacePropertyAccessor.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@
66

77
import java.util.List;
88
import java.util.ArrayList;
9-
import org.franca.core.franca.FInterface;
10-
import org.franca.core.franca.FMethod;
119
import org.franca.core.franca.FEnumerationType;
12-
import org.franca.core.franca.FAttribute;
1310
import org.franca.core.franca.FBroadcast;
11+
import org.franca.core.franca.FAttribute;
12+
import org.franca.core.franca.FMethod;
13+
import org.franca.core.franca.FInterface;
1414
import org.franca.deploymodel.core.FDeployedInterface;
1515

1616
/**

org.genivi.commonapi.core/src-gen/org/genivi/commonapi/core/DeploymentProviderPropertyAccessor.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,11 @@
55
package org.genivi.commonapi.core;
66

77
import java.util.List;
8-
import java.util.ArrayList;
98

109
import org.franca.core.franca.FInterface;
11-
import org.franca.deploymodel.dsl.fDeploy.FDProvider;
12-
import org.franca.deploymodel.dsl.fDeploy.FDInterfaceInstance;
1310
import org.franca.deploymodel.core.FDeployedProvider;
11+
import org.franca.deploymodel.dsl.fDeploy.FDInterfaceInstance;
12+
import org.franca.deploymodel.dsl.fDeploy.FDProvider;
1413

1514
/**
1615
* Accessor for deployment properties for 'org.genivi.commonapi.core.deployment' specification

org.genivi.commonapi.core/src-gen/org/genivi/commonapi/core/DeploymentTypeCollectionPropertyAccessor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
*******************************************************************************/
55
package org.genivi.commonapi.core;
66

7-
import org.franca.core.franca.FInterface;
87
import org.franca.core.franca.FEnumerationType;
8+
import org.franca.core.franca.FInterface;
99
import org.franca.deploymodel.core.FDeployedTypeCollection;
1010

1111
/**

org.genivi.commonapi.core/src/org/genivi/commonapi/core/deployment/PropertyAccessor.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import org.genivi.commonapi.core.DeploymentInterfacePropertyAccessor;
2323
import org.genivi.commonapi.core.DeploymentProviderPropertyAccessor;
2424
import org.genivi.commonapi.core.DeploymentTypeCollectionPropertyAccessor;
25-
import org.genivi.commonapi.core.DeploymentInterfacePropertyAccessor.BroadcastType;
2625

2726
public class PropertyAccessor {
2827

org.genivi.commonapi.core/src/org/genivi/commonapi/core/generator/FDeployManager.java

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@
33
import java.util.Collections;
44
import java.util.HashMap;
55
import java.util.Iterator;
6+
import java.util.List;
67
import java.util.Map;
8+
79
import org.eclipse.emf.common.util.URI;
810
import org.eclipse.emf.ecore.EObject;
911
import org.eclipse.emf.ecore.resource.Resource;
@@ -14,6 +16,7 @@
1416
import org.franca.core.utils.ImportsProvider;
1517
import org.franca.deploymodel.dsl.FDeployImportsProvider;
1618
import org.franca.deploymodel.dsl.fDeploy.FDModel;
19+
import org.franca.deploymodel.dsl.fDeploy.FDSpecification;
1720
import org.franca.deploymodel.dsl.fDeploy.Import;
1821

1922
/**
@@ -37,6 +40,7 @@ public class FDeployManager {
3740

3841
private Map<String, FDModel> deploymentModels = new HashMap<String, FDModel>();
3942
private Map<String, FModel> fidlModels = new HashMap<String, FModel>();
43+
private Map<String, FDSpecification> specifications = new HashMap<String, FDSpecification>();
4044

4145
public FDeployManager() {
4246

@@ -116,8 +120,18 @@ public EObject loadModel(URI uri, URI root) {
116120
String uriName = resolvedURI.toString();
117121
EObject importModel = loadModel(resolvedURI, root);
118122
if (importModel != null) {
119-
if(importModel instanceof FDModel && !(uriName.contains("_spec"))) {
120-
deploymentModels.put(uriName, (FDModel) importModel);
123+
if(importModel instanceof FDModel) {
124+
// CommonAPI models do _NOT_ contain specifications
125+
List<FDSpecification> itsSpecifications = ((FDModel)importModel).getSpecifications();
126+
if (itsSpecifications.size() == 0) {
127+
deploymentModels.put(uriName, (FDModel) importModel);
128+
} else {
129+
for (FDSpecification s : itsSpecifications) {
130+
if (!specifications.containsKey(s.getName())) {
131+
specifications.put(s.getName(), s);
132+
}
133+
}
134+
}
121135
}
122136
else if(importModel instanceof FModel) {
123137
fidlModels.put(uriName, (FModel) importModel);
@@ -180,4 +194,8 @@ public Map<String, FModel> getFidlModels() {
180194
public void clearFidlModels() {
181195
fidlModels.clear();
182196
}
197+
198+
public FDSpecification getDeploymentSpecification(String name) {
199+
return specifications.get(name);
200+
}
183201
}

org.genivi.commonapi.core/src/org/genivi/commonapi/core/generator/FInterfaceStubGenerator.xtend

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,18 @@
77
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
88
package org.genivi.commonapi.core.generator
99

10+
import java.util.HashMap
1011
import java.util.HashSet
12+
import java.util.LinkedHashMap
1113
import javax.inject.Inject
1214
import org.eclipse.core.resources.IResource
1315
import org.eclipse.xtext.generator.IFileSystemAccess
1416
import org.franca.core.franca.FAttribute
1517
import org.franca.core.franca.FInterface
16-
import org.genivi.commonapi.core.preferences.PreferenceConstants
17-
import org.genivi.commonapi.core.preferences.FPreferences
18-
import java.util.HashMap
19-
import java.util.LinkedHashMap
2018
import org.franca.core.franca.FMethod
21-
import org.franca.core.franca.FEnumerationType
2219
import org.genivi.commonapi.core.deployment.PropertyAccessor
20+
import org.genivi.commonapi.core.preferences.FPreferences
21+
import org.genivi.commonapi.core.preferences.PreferenceConstants
2322

2423
class FInterfaceStubGenerator {
2524
@Inject private extension FTypeGenerator

org.genivi.commonapi.core/src/org/genivi/commonapi/core/generator/FrancaGeneratorExtensions.xtend

Lines changed: 35 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ import org.osgi.framework.FrameworkUtil
8080
import static com.google.common.base.Preconditions.*
8181

8282
import static extension java.lang.Integer.*
83+
import org.franca.deploymodel.dsl.fDeploy.FDeployFactory
8384

8485
class FrancaGeneratorExtensions {
8586

@@ -2006,7 +2007,7 @@ class FrancaGeneratorExtensions {
20062007
20072008
for(depl : fdmodel.getDeployments()) {
20082009
if (depl instanceof FDInterface) {
2009-
var specname = depl.spec.name
2010+
var specname = depl.spec?.name
20102011
if(specname != null && specname.contains(selector)) {
20112012
fdinterfaces.add(depl);
20122013
}
@@ -2079,25 +2080,27 @@ class FrancaGeneratorExtensions {
20792080
var boolean hasBeenMerged = false
20802081
for (FDAttribute t : _target.attributes) {
20812082
if (s.target.equals(t.target)) {
2082-
t.properties.addAll(s.properties)
2083+
for (p : s.properties)
2084+
t.properties.add(EcoreUtil.copy(p))
20832085
hasBeenMerged = true
20842086
}
20852087
}
20862088
if (!hasBeenMerged)
2087-
itsNewAttributes.add(s)
2089+
itsNewAttributes.add(EcoreUtil.copy(s))
20882090
}
20892091
20902092
// Merge broadcasts
20912093
for (FDBroadcast s : _source.broadcasts) {
20922094
var boolean hasBeenMerged = false
20932095
for (FDBroadcast t : _target.broadcasts) {
20942096
if (s.target.equals(t.target)) {
2095-
t.properties.addAll(s.properties)
2097+
for (p : s.properties)
2098+
t.properties.add(EcoreUtil.copy(p))
20962099
hasBeenMerged = true
20972100
}
20982101
}
20992102
if (!hasBeenMerged) {
2100-
itsNewBroadcasts.add(s)
2103+
itsNewBroadcasts.add(EcoreUtil.copy(s))
21012104
}
21022105
}
21032106
@@ -2106,12 +2109,13 @@ class FrancaGeneratorExtensions {
21062109
var boolean hasBeenMerged = false
21072110
for (FDMethod t : _target.methods) {
21082111
if (s.target.equals(t.target)) {
2109-
t.properties.addAll(s.properties)
2112+
for (p : s.properties)
2113+
t.properties.add(EcoreUtil.copy(p))
21102114
hasBeenMerged = true
21112115
}
21122116
}
21132117
if (!hasBeenMerged)
2114-
itsNewMethods.add(s)
2118+
itsNewMethods.add(EcoreUtil.copy(s))
21152119
}
21162120
21172121
_target.attributes.addAll(itsNewAttributes)
@@ -2122,6 +2126,10 @@ class FrancaGeneratorExtensions {
21222126
mergeDeployments(_source.types, _target.types)
21232127
}
21242128
}
2129+
2130+
def mergeDeployments(FDTypes _source, FDInterface _target) {
2131+
mergeDeployments(_source.types, _target.types)
2132+
}
21252133
21262134
def mergeDeployments(FDTypes _source, FDTypes _target) {
21272135
if (_source != null && _source.target != null &&
@@ -2130,47 +2138,59 @@ class FrancaGeneratorExtensions {
21302138
mergeDeployments(_source.types, _target.types)
21312139
}
21322140
}
2133-
2141+
2142+
def mergeDeploymentsExt(FDTypes _source, FDTypes _target) {
2143+
if (_source != null && _source.target != null &&
2144+
_target != null && _target.target != null) {
2145+
// Merge types
2146+
mergeDeployments(_source.types, _target.types)
2147+
}
2148+
}
2149+
21342150
def mergeDeployments(EList<FDTypeDef> _source, EList<FDTypeDef> _target) {
21352151
var List<FDTypeDef> itsNewTypeDefs = new ArrayList<FDTypeDef>()
2136-
2152+
21372153
for (FDTypeDef s : _source) {
21382154
var boolean hasBeenMerged = false
21392155
for (FDTypeDef t : _target) {
21402156
if (s instanceof FDArray && t instanceof FDArray) {
21412157
val FDArray itsSourceArray = s as FDArray
21422158
val FDArray itsTargetArray = t as FDArray
21432159
if (itsSourceArray.target.equals(itsTargetArray.target)) {
2144-
itsTargetArray.properties.addAll(itsSourceArray.properties)
2160+
for (p : itsSourceArray.properties)
2161+
itsTargetArray.properties.add(EcoreUtil.copy(p))
21452162
hasBeenMerged = true
21462163
}
21472164
} else if (s instanceof FDEnumeration && t instanceof FDEnumeration) {
21482165
val FDEnumeration itsSourceEnumeration = s as FDEnumeration
21492166
val FDEnumeration itsTargetEnumeration = t as FDEnumeration
21502167
if (itsSourceEnumeration.target.equals(itsTargetEnumeration.target)) {
2151-
itsTargetEnumeration.properties.addAll(itsSourceEnumeration.properties)
2168+
for (p : itsSourceEnumeration.properties)
2169+
itsTargetEnumeration.properties.add(EcoreUtil.copy(p))
21522170
hasBeenMerged = true
21532171
}
21542172
} else if (s instanceof FDStruct && t instanceof FDStruct) {
21552173
val FDStruct itsSourceStruct = s as FDStruct
21562174
val FDStruct itsTargetStruct = t as FDStruct
21572175
if (itsSourceStruct.target.equals(itsTargetStruct.target)) {
2158-
itsTargetStruct.properties.addAll(itsSourceStruct.properties)
2176+
for (p : itsSourceStruct.properties)
2177+
itsTargetStruct.properties.add(EcoreUtil.copy(p))
21592178
hasBeenMerged = true
21602179
}
21612180
} else if (s instanceof FDUnion && t instanceof FDUnion) {
21622181
val FDUnion itsSourceUnion = s as FDUnion
21632182
val FDUnion itsTargetUnion = t as FDUnion
21642183
if (itsSourceUnion.target.equals(itsTargetUnion.target)) {
2165-
itsTargetUnion.properties.addAll(itsSourceUnion.properties)
2184+
for (p : itsSourceUnion.properties)
2185+
itsTargetUnion.properties.add(EcoreUtil.copy(p))
21662186
hasBeenMerged = true
21672187
}
21682188
}
21692189
}
21702190
if (!hasBeenMerged)
2171-
itsNewTypeDefs.add(s);
2191+
itsNewTypeDefs.add(EcoreUtil.copy(s))
21722192
}
2173-
2193+
21742194
_target.addAll(itsNewTypeDefs)
21752195
}
21762196

0 commit comments

Comments
 (0)