static <S extends SpecModel> Collection<SpecModelValidationError> validate(S specModel) { List<SpecModelValidationError> validationErrors = new ArrayList<>(); for (FieldModel field : specModel.getFields()) { if (!(field.field.hasModifier(Modifier.FINAL) && field.field.hasModifier(Modifier.STATIC))) { validationErrors.add( new SpecModelValidationError( field.representedObject, field.field.name + " should be declared static and final.")); } } return validationErrors; } }
@Test public void testFieldExtraction() { final TypeElement element = compilationRule.getElements().getTypeElement(TwoFieldsClass.class.getCanonicalName()); ImmutableList<FieldModel> fieldModels = FieldsExtractor.extractFields(element); assertThat(fieldModels).hasSize(2); FieldSpec extractedIntField = fieldModels.get(0).field; assertThat(extractedIntField.name).isEqualTo("intField"); assertThat(extractedIntField.modifiers).hasSize(3); assertThat(extractedIntField.hasModifier(Modifier.PRIVATE)); assertThat(extractedIntField.hasModifier(Modifier.STATIC)); assertThat(extractedIntField.hasModifier(Modifier.FINAL)); FieldSpec extractedFloatField = fieldModels.get(1).field; assertThat(extractedFloatField.name).isEqualTo("floatField"); assertThat(extractedFloatField.modifiers).hasSize(1); assertThat(extractedFloatField.hasModifier(Modifier.STATIC)); }
if (!fieldSpec.hasModifier(Modifier.STATIC)) continue; if (!firstMember) codeWriter.emit("\n"); fieldSpec.emit(codeWriter, kind.implicitFieldModifiers); if (fieldSpec.hasModifier(Modifier.STATIC)) continue; if (!firstMember) codeWriter.emit("\n"); fieldSpec.emit(codeWriter, kind.implicitFieldModifiers);
if (!fieldSpec.hasModifier(Modifier.STATIC)) continue; if (!firstMember) codeWriter.emit("\n"); fieldSpec.emit(codeWriter, kind.implicitFieldModifiers); if (fieldSpec.hasModifier(Modifier.STATIC)) continue; if (!firstMember) codeWriter.emit("\n"); fieldSpec.emit(codeWriter, kind.implicitFieldModifiers);
if (!fieldSpec.hasModifier(Modifier.STATIC)) continue; if (!firstMember) codeWriter.emit("\n"); fieldSpec.emit(codeWriter, kind.implicitFieldModifiers); if (fieldSpec.hasModifier(Modifier.STATIC)) continue; if (!firstMember) codeWriter.emit("\n"); fieldSpec.emit(codeWriter, kind.implicitFieldModifiers);