Skip to content

Commit

Permalink
Fix issue #30 : Operations parameters or return types are now generated
Browse files Browse the repository at this point in the history
with the developper generated type

Deliver the unit test too

Change-Id: I794538107d3412e3de701aa708ba594bf5ad95a7
Signed-off-by: Olivier Prouvost <olivier.prouvost@opcoach.com>
  • Loading branch information
opcoach committed Feb 25, 2016
1 parent 4efee6d commit 29a2dca
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 12 deletions.
Expand Up @@ -198,6 +198,26 @@ public void implMDocProjectImplMustExtendProjectImplAndImplementsMDocProject()
assertFileContains("src/com/opcoach/project/impl/ProjectImpl.java", copyright);
assertFileContains("src/com/opcoach/project/impl/ProjectFactoryImpl.java", copyright);
}

//-----------------------------------------------------------------------
// ------------------- Test gen operations must return the dev types --
//-----------------------------------------------------------------------

@Test public void theFindTaskMethodMustReturnTask()
{
assertFileContains("src-gen/com/opcoach/project/MProject.java", "Task findFirstTask");
assertFileContains("src-gen/com/opcoach/project/impl/MProjectImpl.java", "public Task findFirstTask");


}

@Test public void theFindTaskMethodMustReceiveAPerson()
{
assertFileContains("src-gen/com/opcoach/project/MProject.java", "findFirstTask(Person p);");
assertFileContains("src-gen/com/opcoach/project/impl/MProjectImpl.java", "findFirstTask(Person p)");
assertFileContains("src-gen/com/opcoach/project/impl/MProjectImpl.java", "return findFirstTask((Person)arguments.get(0))");

}



Expand Down
24 changes: 12 additions & 12 deletions com.opcoach.genmodeladdon.core/templates/model/Class.javajet
Expand Up @@ -974,7 +974,7 @@ if (index != -1) { head = typeName.substring(0, index); tail = typeName.substrin
// The list is expected to implement org.eclipse.emf.ecore.util.InternalEList and org.eclipse.emf.ecore.EStructuralFeature.Setting
// so it's likely that an appropriate subclass of org.eclipse.emf.ecore.util.<%if (genFeature.isMapType()) {%>EcoreEMap<%} else if (genFeature.isFeatureMapType()) {%>BasicFeatureMap<%} else {%>EcoreEList<%}%> should be used.
<%}%>
throw new UnsupportedOperationException();
throw new UnsupportedOperationException(); // OP1
<%@ end %><%//Class/getGenFeature.todo.override.javajetinc%>
<%}%>
<%}%>
Expand Down Expand Up @@ -1024,7 +1024,7 @@ if (index != -1) { head = typeName.substring(0, index); tail = typeName.substrin
// TODO: implement this method to return the '<%=genFeature.getFormattedName()%>' <%=genFeature.getFeatureKind()%>
// -> do not perform proxy resolution
// Ensure that you remove @generated or mark it @generated NOT
throw new UnsupportedOperationException();
throw new UnsupportedOperationException(); //OP2
<%@ end %><%//Class/basicGetGenFeature.todo.override.javajetinc%>
<%}%>
}
Expand Down Expand Up @@ -1106,7 +1106,7 @@ if (index != -1) { head = typeName.substring(0, index); tail = typeName.substrin
// -> do not modify other features
// -> return msgs, after adding any generated Notification to it (if it is null, a NotificationChain object must be created first)
// Ensure that you remove @generated or mark it @generated NOT
throw new UnsupportedOperationException();
throw new UnsupportedOperationException(); // OP3
<%@ end %><%//Class/basicSetGenFeature.todo.override.javajetinc%>
<%}%>
}
Expand Down Expand Up @@ -1305,7 +1305,7 @@ if (index != -1) { head = typeName.substring(0, index); tail = typeName.substrin
<%@ start %>
// TODO: implement this method to set the '<%=genFeature.getFormattedName()%>' <%=genFeature.getFeatureKind()%>
// Ensure that you remove @generated or mark it @generated NOT
throw new UnsupportedOperationException();
throw new UnsupportedOperationException(); //OP4
<%@ end %><%//Class/setGenFeature.todo.override.javajetinc%>
<%}%>
}
Expand Down Expand Up @@ -1368,7 +1368,7 @@ if (index != -1) { head = typeName.substring(0, index); tail = typeName.substrin
// -> do not modify other features
// -> return msgs, after adding any generated Notification to it (if it is null, a NotificationChain object must be created first)
// Ensure that you remove @generated or mark it @generated NOT
throw new UnsupportedOperationException();
throw new UnsupportedOperationException(); //OP5
<%@ end %><%//Class/basicUnsetGenFeature.todo.override.javajetinc%>
<%}%>
}
Expand Down Expand Up @@ -1533,7 +1533,7 @@ if (index != -1) { head = typeName.substring(0, index); tail = typeName.substrin
<%@ start %>
// TODO: implement this method to unset the '<%=genFeature.getFormattedName()%>' <%=genFeature.getFeatureKind()%>
// Ensure that you remove @generated or mark it @generated NOT
throw new UnsupportedOperationException();
throw new UnsupportedOperationException(); // OP6
<%@ end %><%//Class/unsetGenFeature.todo.override.javajetinc%>
<%}%>
}
Expand Down Expand Up @@ -1613,7 +1613,7 @@ if (index != -1) { head = typeName.substring(0, index); tail = typeName.substrin
<%@ start %>
// TODO: implement this method to return whether the '<%=genFeature.getFormattedName()%>' <%=genFeature.getFeatureKind()%> is set
// Ensure that you remove @generated or mark it @generated NOT
throw new UnsupportedOperationException();
throw new UnsupportedOperationException(); //OP7
<%@ end %><%//Class/isSetGenFeature.todo.override.javajetinc%>
<%}%>
}
Expand Down Expand Up @@ -1698,13 +1698,13 @@ if (index != -1) { head = typeName.substring(0, index); tail = typeName.substrin
<%}%>
<%}%>
<%if (!isImplementation) {%>
<%=genOperation.getTypeParameters(genClass)%><%=genOperation.getImportedType(genClass)%> <%=genOperation.getName()%>(<%=genOperation.getParameters(genClass)%>)<%=genOperation.getThrows(genClass)%>;
<%=genOperation.getTypeParameters(genClass)%><%=devTransform.replaceDevName(genOperation.getImportedType(genClass))%> <%=genOperation.getName()%>(<%=devTransform.replaceDevName(genOperation.getParameters(genClass))%>)<%=genOperation.getThrows(genClass)%>;

<%} else {%>
<%if (genModel.useGenerics() && !genOperation.hasBody() && !genOperation.isInvariant() && genOperation.hasInvocationDelegate() && genOperation.isUncheckedCast(genClass)) {%>
@SuppressWarnings("unchecked")
<%}%>
public <%=genOperation.getTypeParameters(genClass)%><%=genOperation.getImportedType(genClass)%> <%=genOperation.getName()%>(<%=genOperation.getParameters(isImplementation, genClass)%>)<%=genOperation.getThrows(genClass)%>
public <%=genOperation.getTypeParameters(genClass)%><%=devTransform.replaceDevName(genOperation.getImportedType(genClass))%> <%=genOperation.getName()%>(<%=devTransform.replaceDevName(genOperation.getParameters(isImplementation, genClass))%>)<%=genOperation.getThrows(genClass)%>
{
<%if (genOperation.hasBody()) {%>
<%=genOperation.getBody(genModel.getIndentation(stringBuffer))%>
Expand Down Expand Up @@ -1761,7 +1761,7 @@ if (index != -1) { head = typeName.substring(0, index); tail = typeName.substrin
<%@ start %>
// TODO: implement this method
// Ensure that you remove @generated or mark it @generated NOT
throw new UnsupportedOperationException();
throw new UnsupportedOperationException();
<%@ end %><%//Class/implementedGenOperation.todo.override.javajetinc%>
<%}%>
}
Expand Down Expand Up @@ -2383,10 +2383,10 @@ if (index != -1) { head = typeName.substring(0, index); tail = typeName.substrin
{
<%/*}*/}%>
<%if (genOperation.isVoid()) {%>
<%=indent%><%=genOperation.getName()%>(<%for (int i = 0; i < size; i++) { GenParameter genParameter = genParameters.get(i);%><%if (!isJDK50 && genParameter.isPrimitiveType()) {%>(<%}%><%if (genParameter.getTypeGenDataType() == null || !genParameter.getTypeGenDataType().isObjectType() || !genParameter.usesOperationTypeParameters() && !genParameter.getRawType().equals(genParameter.getType(genClass))) {%>(<%=genParameter.usesOperationTypeParameters() ? genParameter.getRawImportedType() : genParameter.getObjectType(genClass)%>)<%}%>arguments.get(<%=i%>)<%if (!isJDK50 && genParameter.isPrimitiveType()) {%>).<%=genParameter.getPrimitiveValueFunction()%>()<%}%><%if (i < (size - 1)) {%>, <%}%><%}%>);
<%=indent%><%=genOperation.getName()%>(<%for (int i = 0; i < size; i++) { GenParameter genParameter = genParameters.get(i);%><%if (!isJDK50 && genParameter.isPrimitiveType()) {%>(<%}%><%if (genParameter.getTypeGenDataType() == null || !genParameter.getTypeGenDataType().isObjectType() || !genParameter.usesOperationTypeParameters() && !genParameter.getRawType().equals(genParameter.getType(genClass))) {%>(<%=genParameter.usesOperationTypeParameters() ? genParameter.getRawImportedType() : devTransform.replaceDevName(genParameter.getObjectType(genClass))%>)<%}%>arguments.get(<%=i%>)<%if (!isJDK50 && genParameter.isPrimitiveType()) {%>).<%=genParameter.getPrimitiveValueFunction()%>()<%}%><%if (i < (size - 1)) {%>, <%}%><%}%>);
<%=indent%>return null;
<%} else {%>
<%=indent%>return <%if (!isJDK50 && genOperation.isPrimitiveType()) {%>new <%=genOperation.getObjectType(genClass)%>(<%}%><%=genOperation.getName()%>(<%for (int i = 0; i < size; i++) { GenParameter genParameter = genParameters.get(i);%><%if (!isJDK50 && genParameter.isPrimitiveType()) {%>(<%}%><%if (genParameter.getTypeGenDataType() == null || !genParameter.getTypeGenDataType().isObjectType() || !genParameter.usesOperationTypeParameters() && !genParameter.getRawType().equals(genParameter.getType(genClass))) {%>(<%=genParameter.usesOperationTypeParameters() ? genParameter.getRawImportedType() : genParameter.getObjectType(genClass)%>)<%}%>arguments.get(<%=i%>)<%if (!isJDK50 && genParameter.isPrimitiveType()) {%>).<%=genParameter.getPrimitiveValueFunction()%>()<%}%><%if (i < (size - 1)) {%>, <%}%><%}%>)<%if (!isJDK50 && genOperation.isPrimitiveType()) {%>)<%}%>;
<%=indent%>return <%if (!isJDK50 && genOperation.isPrimitiveType()) {%>new <%=genOperation.getObjectType(genClass)%>(<%}%><%=genOperation.getName()%>(<%for (int i = 0; i < size; i++) { GenParameter genParameter = genParameters.get(i);%><%if (!isJDK50 && genParameter.isPrimitiveType()) {%>(<%}%><%if (genParameter.getTypeGenDataType() == null || !genParameter.getTypeGenDataType().isObjectType() || !genParameter.usesOperationTypeParameters() && !genParameter.getRawType().equals(genParameter.getType(genClass))) {%>(<%=genParameter.usesOperationTypeParameters() ? genParameter.getRawImportedType() : devTransform.replaceDevName(genParameter.getObjectType(genClass))%>)<%}%>arguments.get(<%=i%>)<%if (!isJDK50 && genParameter.isPrimitiveType()) {%>).<%=genParameter.getPrimitiveValueFunction()%>()<%}%><%if (i < (size - 1)) {%>, <%}%><%}%>)<%if (!isJDK50 && genOperation.isPrimitiveType()) {%>)<%}%>;
<%}%>
<%if (hasCheckedException) {/*{*/%>
}
Expand Down

0 comments on commit 29a2dca

Please sign in to comment.