diff --git a/build.gradle b/build.gradle index 662973580e..a8724cc6a1 100644 --- a/build.gradle +++ b/build.gradle @@ -9,13 +9,18 @@ apply plugin: 'maven' apply plugin: 'maven-publish' apply plugin: 'antlr' -sourceCompatibility = 1.6 -targetCompatibility = 1.6 -def releaseVersion = System.properties.RELEASE_VERSION +sourceCompatibility = 1.8 +targetCompatibility = 1.8 +def nexusBaseUrl = 'http://nexus.guidewire.com' +def releaseVersion = '2.2.0-integration-views-SNAPSHOT' version = releaseVersion ? releaseVersion : new SimpleDateFormat('yyyy-MM-dd\'T\'HH-mm-ss').format(new Date()) -group = 'com.graphql-java' +//group = 'com.graphql-java' +group = 'com.guidewire.pl' +String nexusUser = System.getProperty('nexusUser') +String nexusPassword = System.getProperty('nexusPassword') + repositories { mavenCentral() } @@ -127,6 +132,20 @@ publishing { } } } + + repositories { + maven { + if (nexusUser) { + credentials { + username nexusUser + password nexusPassword + } + } + url version.endsWith('-SNAPSHOT') ? + 'http://nexus.guidewire.com/content/repositories/snapshots/' : + 'http://nexus.guidewire.com/content/repositories/releases/' + } + } } diff --git a/src/main/java/graphql/schema/GraphQLInterfaceType.java b/src/main/java/graphql/schema/GraphQLInterfaceType.java index a982301e56..88f1523385 100644 --- a/src/main/java/graphql/schema/GraphQLInterfaceType.java +++ b/src/main/java/graphql/schema/GraphQLInterfaceType.java @@ -2,10 +2,7 @@ import graphql.AssertException; -import java.util.ArrayList; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import static graphql.Assert.assertNotNull; @@ -13,8 +10,9 @@ public class GraphQLInterfaceType implements GraphQLType, GraphQLOutputType, Gra private final String name; private final String description; - private final Map fieldDefinitionsByName = new LinkedHashMap(); + private Map fieldDefinitionsByName = new LinkedHashMap(); private final TypeResolver typeResolver; + private final Set implementingTypes = new HashSet(); public GraphQLInterfaceType(String name, String description, List fieldDefinitions, TypeResolver typeResolver) { assertNotNull(name, "name can't null"); @@ -26,6 +24,13 @@ public GraphQLInterfaceType(String name, String description, List fieldDefinitions) { for (GraphQLFieldDefinition fieldDefinition : fieldDefinitions) { String name = fieldDefinition.getName(); @@ -39,11 +44,13 @@ public GraphQLFieldDefinition getFieldDefinition(String name) { return fieldDefinitionsByName.get(name); } - public List getFieldDefinitions() { return new ArrayList(fieldDefinitionsByName.values()); } + public void setFieldDefinitions(Map fieldDefinitionsByName) { + this. fieldDefinitionsByName = fieldDefinitionsByName; + } public String getName() { return name; } @@ -70,6 +77,14 @@ public static Builder newInterface() { return new Builder(); } + public GraphQLInterfaceType withImplementingType(GraphQLObjectType implementingType) { + this.implementingTypes.add(implementingType); + return this; + } + + public Set getImplementingTypes() { + return implementingTypes; + } public static class Builder { private String name; diff --git a/src/main/java/graphql/schema/GraphQLObjectType.java b/src/main/java/graphql/schema/GraphQLObjectType.java index 41d8aa99d2..062f44f806 100644 --- a/src/main/java/graphql/schema/GraphQLObjectType.java +++ b/src/main/java/graphql/schema/GraphQLObjectType.java @@ -13,9 +13,14 @@ public class GraphQLObjectType implements GraphQLType, GraphQLOutputType, GraphQ private final String name; private final String description; - private final Map fieldDefinitionsByName = new LinkedHashMap(); + private Map fieldDefinitionsByName = new LinkedHashMap(); private final List interfaces = new ArrayList(); + public GraphQLObjectType() { + name = null; + description = null; + } + public GraphQLObjectType(String name, String description, List fieldDefinitions, List interfaces) { assertNotNull(name, "name can't be null"); assertNotNull(fieldDefinitions, "fieldDefinitions can't be null"); @@ -26,6 +31,14 @@ public GraphQLObjectType(String name, String description, List interfaces) { + assertNotNull(name, "name can't be null"); + assertNotNull(interfaces, "interfaces can't be null"); + this.name = name; + this.description = description; + this.interfaces.addAll(interfaces); + } + private void buildDefinitionMap(List fieldDefinitions) { for (GraphQLFieldDefinition fieldDefinition : fieldDefinitions) { String name = fieldDefinition.getName(); @@ -35,7 +48,6 @@ private void buildDefinitionMap(List fieldDefinitions) { } } - public GraphQLFieldDefinition getFieldDefinition(String name) { return fieldDefinitionsByName.get(name); } @@ -45,6 +57,13 @@ public List getFieldDefinitions() { return new ArrayList(fieldDefinitionsByName.values()); } + public void setFieldDefinitions(Map fieldDefinitionsByName) { + this. fieldDefinitionsByName = fieldDefinitionsByName; + } + + public void setInterface(GraphQLInterfaceType graphQLInterfaceType) { + interfaces.add(graphQLInterfaceType); + } public List getInterfaces() { return new ArrayList(interfaces); @@ -148,9 +167,14 @@ public Builder withInterfaces(GraphQLInterfaceType... interfaceType) { } public GraphQLObjectType build() { - return new GraphQLObjectType(name, description, fieldDefinitions, interfaces); + GraphQLObjectType type = new GraphQLObjectType(name, description, fieldDefinitions, interfaces); + //for (GraphQLInterfaceType itf : interfaces) { + // itf.withImplementingType(type); + //} + return type; } + } } diff --git a/src/main/java/graphql/schema/SchemaUtil.java b/src/main/java/graphql/schema/SchemaUtil.java index 2c3754f1f5..fb7bbd6f93 100644 --- a/src/main/java/graphql/schema/SchemaUtil.java +++ b/src/main/java/graphql/schema/SchemaUtil.java @@ -73,6 +73,10 @@ private void collectTypesForInterfaces(GraphQLInterfaceType interfaceType, Map