public Descriptor build() { Map<String, String> defaults = getPluginDefault(plugin); if (sourceClass != null && sourcePackage == null) { sourcePackage = StringUtil.substringBeforeLastIndexOf(sourceClass, "."); } if (targetPackage == null) { if (defaults.containsKey(TARGET_PACKAGE)) { targetPackage = sourcePackage + "." + defaults.get(TARGET_PACKAGE); } else { targetPackage = sourcePackage; } } if (targetPostfix == null && defaults.containsKey(TARGET_POSTFIX)) { targetPostfix = defaults.get(TARGET_POSTFIX); } if (targetPrefix == null && defaults.containsKey(TARGET_PREFIX)) { targetPrefix = defaults.get(TARGET_PREFIX); } return new DescriptorImpl( sourcePackage, sourceClass, targetPackage, targetPrefix, targetPostfix, superType, interfaces, exclusions, inclusion, plugin, compilationSources, options, immutableImplementation); }
@Override public void handle(JavaType sourceType, JavaField javaField) { if (!(javaField.getName().charAt(0) == '_' && javaField.getType().equals(boolean.class))) { return; } String fieldName = javaField.getName(); String methodPrefix = "has"; String methodName = StringUtil.format(CaseFormat.LOWER_CAMEL, methodPrefix, fieldName, CaseFormat.LOWER_CAMEL); if (!ownerTypeBuilder.containsMethod(methodName)) { JavaMethodBuilder methodBuilder = new JavaMethodBuilder(); methodBuilder.setName(methodName); methodBuilder.setResultType(boolean.class); methodBuilder.addModifier("public"); methodBuilder.addBody(String.format("return this.%s;", fieldName)); ownerTypeBuilder.addMethod(methodBuilder.build()); } }