public TypeSpec build() { checkArgument(kind != Kind.ENUM || !enumConstants.isEmpty(), "at least one enum constant is required for %s", name); boolean isAbstract = modifiers.contains(Modifier.ABSTRACT) || kind != Kind.CLASS; for (MethodSpec methodSpec : methodSpecs) { checkArgument(isAbstract || !methodSpec.hasModifier(Modifier.ABSTRACT), "non-abstract type %s cannot declare abstract method %s", name, methodSpec.name); } boolean superclassIsObject = superclass.equals(ClassName.OBJECT); int interestingSupertypeCount = (superclassIsObject ? 0 : 1) + superinterfaces.size(); checkArgument(anonymousTypeArguments == null || interestingSupertypeCount <= 1, "anonymous type has too many supertypes"); return new TypeSpec(this); } }
} else { codeWriter.pushType(new TypeSpec(this));
public TypeSpec build() { checkArgument(kind != Kind.ENUM || !enumConstants.isEmpty(), "at least one enum constant is required for %s", name); boolean isAbstract = modifiers.contains(Modifier.ABSTRACT) || kind != Kind.CLASS; for (MethodSpec methodSpec : methodSpecs) { checkArgument(isAbstract || !methodSpec.hasModifier(Modifier.ABSTRACT), "non-abstract type %s cannot declare abstract method %s", name, methodSpec.name); } boolean superclassIsObject = superclass.equals(ClassName.OBJECT); int interestingSupertypeCount = (superclassIsObject ? 0 : 1) + superinterfaces.size(); checkArgument(anonymousTypeArguments == null || interestingSupertypeCount <= 1, "anonymous type has too many supertypes"); return new TypeSpec(this); } }
public TypeSpec build() { checkArgument(kind != Kind.ENUM || !enumConstants.isEmpty(), "at least one enum constant is required for %s", name); boolean isAbstract = modifiers.contains(Modifier.ABSTRACT) || kind != Kind.CLASS; for (MethodSpec methodSpec : methodSpecs) { checkArgument(isAbstract || !methodSpec.hasModifier(Modifier.ABSTRACT), "non-abstract type %s cannot declare abstract method %s", name, methodSpec.name); } boolean superclassIsObject = superclass.equals(ClassName.OBJECT); int interestingSupertypeCount = (superclassIsObject ? 0 : 1) + superinterfaces.size(); checkArgument(anonymousTypeArguments == null || interestingSupertypeCount <= 1, "anonymous type has too many supertypes"); return new TypeSpec(this); } }
} else { codeWriter.pushType(new TypeSpec(this));
} else { codeWriter.pushType(new TypeSpec(this));