diff --git a/plugins/generate-tostring/src/org/jetbrains/generate/tostring/template/TemplateResource.java b/plugins/generate-tostring/src/org/jetbrains/generate/tostring/template/TemplateResource.java index 4ffd7b8ae7f8..d0ff33a96e7a 100644 --- a/plugins/generate-tostring/src/org/jetbrains/generate/tostring/template/TemplateResource.java +++ b/plugins/generate-tostring/src/org/jetbrains/generate/tostring/template/TemplateResource.java @@ -27,246 +27,250 @@ import java.io.Serializable; * the text is stored. */ public class TemplateResource implements Serializable { - private final boolean isDefault; - private String fileName = ""; - private String template = ""; + private final boolean isDefault; + private String fileName = ""; + private String template = ""; - /** - * Constructor. - * - * @param fileName a template filename - * @param template the template velocity body content - */ - public TemplateResource(String fileName, String template) { - this(fileName, template, false); + /** + * Constructor. + * + * @param fileName a template filename + * @param template the template velocity body content + */ + public TemplateResource(String fileName, String template) { + this(fileName, template, false); + } + + public TemplateResource(String fileName, String template, boolean aDefault) { + isDefault = aDefault; + this.fileName = fileName; + this.template = template; + } + + /** + * Bean constructor + */ + public TemplateResource() { + isDefault = false; + } + + public String getTemplate() { + return template; + } + + public void setTemplate(String template) { + this.template = template; + } + + public String getFileName() { + return fileName; + } + + public void setFileName(String fileName) { + this.fileName = fileName; + } + + public boolean isDefault() { + return isDefault; + } + + /** + * Get's the javadoc, if any. + * + * @return the javadoc, null if no javadoc. + */ + @Nullable + public String getJavaDoc() { + int i = template.indexOf("*/"); + if (i == -1) { + return null; } - public TemplateResource(String fileName, String template, boolean aDefault) { - isDefault = aDefault; - this.fileName = fileName; - this.template = template; + return template.substring(0, i + 2); + } + + /** + * Get's the method body. + * + * @return the method body. + */ + public String getMethodBody() { + return getMethodBody(template); + } + + @Nullable + private static String getMethodBody(String template) { + String signature = getMethodSignature(template); + String s = StringUtil.after(template, signature); + + if (s == null) { + return null; } - /** - * Bean constructor - */ - public TemplateResource() { - isDefault = false; + // skip the starting and ending { } + final String trimmed = s.trim(); + return trimmed.substring(1, s.length() - 1); + } + + /** + * Gets the method signature + *
+ *public String toString()
+ */
+ public String getMethodSignature() {
+ return getMethodSignature(template);
+ }
+
+ private static String getMethodSignature(String template) {
+ String s = StringUtil.after(template, "*/").trim();
+
+ StringBuffer signature = new StringBuffer();
+
+ String[] lines = s.split("\n");
+ for (String line : lines) {
+ line = line.trim();
+ if (line.startsWith("@")) {
+ continue;
+ }
+ signature.append(line);
+ if (line.indexOf("{") > -1) {
+ break;
+ }
}
- public String getTemplate() {
- return template;
+ // remove last {
+ String result = signature.toString();
+ return result.substring(0, result.lastIndexOf("{"));
+ }
+
+ /**
+ * Get's the method that this template is for (toString)
+ */
+ public String getTargetMethodName() {
+ String s = getMethodSignature();
+ s = StringUtil.before(s, "(");
+ int i = s.lastIndexOf(" ");
+ return s.substring(i).trim();
+ }
+
+ /**
+ * Validates this template to see if its valid for plugin v3.10 or higher.
+ *
+ * @return true if valid, false if not
+ */
+ public boolean isValidTemplate() {
+ return isValidTemplate(template);
+ }
+
+ /**
+ * Validates the provided template.
+ *
+ * @param template the template to validate.
+ * @return true if valid, false if not.
+ */
+ public static boolean isValidTemplate(String template) {
+ template = template.trim();
+
+ if (template.indexOf("{") == -1) {
+ return false;
}
- public void setTemplate(String template) {
- this.template = template;
+ // ending } must be the last character
+ String s = template.trim();
+ if (s.lastIndexOf("}") != s.length() - 1) {
+ return false;
}
- public String getFileName() {
- return fileName;
+ if (getMethodSignature(template) == null) {
+ return false;
}
- public void setFileName(String fileName) {
- this.fileName = fileName;
+ if (getMethodBody(template) == null) {
+ return false;
}
- public boolean isDefault() {
- return isDefault;
+ return true;
+ }
+
+ /**
+ * Does the template use annotations?
+ *
+ * @return true if so, false if not.
+ */
+ public boolean hasAnnotations() {
+ return getAnnotations() != null;
+ }
+
+ /**
+ * Get's the annotations
+ *
+ * @return the annotation, null if does not have.
+ */
+ public String[] getAnnotations() {
+ String signature = getMethodSignature();
+ String javadoc = getJavaDoc();
+ String annotations;
+ if (javadoc != null) {
+ annotations = StringUtil.middle(template, javadoc, signature);
+ }
+ else {
+ annotations = StringUtil.before(template, signature);
}
- /**
- * Get's the javadoc, if any.
- *
- * @return the javadoc, null if no javadoc.
- */
- @Nullable
- public String getJavaDoc() {
- int i = template.indexOf("*/");
- if (i == -1)
- return null;
-
- return template.substring(0, i + 2);
+ if (StringUtil.isEmpty(annotations)) {
+ return null;
}
- /**
- * Get's the method body.
- *
- * @return the method body.
- */
- public String getMethodBody() {
- return getMethodBody(template);
+ if (annotations.indexOf("@") == -1) {
+ return null;
}
- @Nullable
- private static String getMethodBody(String template) {
- String signature = getMethodSignature(template);
- String s = StringUtil.after(template, signature);
-
- if (s == null)
- return null;
-
- // skip the starting and ending { }
- return s.trim().substring(1, s.length() - 1);
+ // remove first and last \n
+ annotations = annotations.trim();
+ if (annotations.startsWith("\n")) {
+ annotations = annotations.substring(1);
+ }
+ if (annotations.endsWith("\n")) {
+ annotations = annotations.substring(0, annotations.length() - 1);
}
- /**
- * Gets the method signature
- *
- * public String toString()
- */
- public String getMethodSignature() {
- return getMethodSignature(template);
- }
+ return annotations.split("\n");
+ }
- private static String getMethodSignature(String template) {
- String s = StringUtil.after(template, "*/").trim();
+ /**
+ * Important to return filename only as it is the displayname in the UI.
+ *
+ * @return filename for UI.
+ */
+ public String toString() {
+ return fileName != null ? fileName : template;
+ }
- StringBuffer signature = new StringBuffer();
+ public String getName() {
+ return fileName;
+ }
- String[] lines = s.split("\n");
- for (String line : lines) {
- line = line.trim();
- if (line.startsWith("@")) {
- continue;
- }
- signature.append(line);
- if (line.indexOf("{") > -1) {
- break;
- }
- }
+ public void copyFrom(TemplateResource templateResource) {
+ fileName = templateResource.getFileName();
+ template = templateResource.getTemplate();
+ }
- // remove last {
- String result = signature.toString();
- return result.substring(0, result.lastIndexOf("{"));
- }
+ public void setName(String name) {
+ fileName = name;
+ }
- /**
- * Get's the method that this template is for (toString)
- */
- public String getTargetMethodName() {
- String s = getMethodSignature();
- s = StringUtil.before(s, "(");
- int i = s.lastIndexOf(" ");
- return s.substring(i).trim();
- }
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof TemplateResource)) return false;
- /**
- * Validates this template to see if its valid for plugin v3.10 or higher.
- *
- * @return true if valid, false if not
- */
- public boolean isValidTemplate() {
- return isValidTemplate(template);
- }
+ TemplateResource that = (TemplateResource)o;
- /**
- * Validates the provided template.
- *
- * @param template the template to validate.
- * @return true if valid, false if not.
- */
- public static boolean isValidTemplate(String template) {
- template = template.trim();
+ return fileName.equals(that.fileName) && template.equals(that.template);
+ }
- if (template.indexOf("{") == -1) {
- return false;
- }
-
- // ending } must be the last character
- String s = template.trim();
- if (s.lastIndexOf("}") != s.length() - 1) {
- return false;
- }
-
- if (getMethodSignature(template) == null) {
- return false;
- }
-
- if (getMethodBody(template) == null) {
- return false;
- }
-
- return true;
- }
-
- /**
- * Does the template use annotations?
- *
- * @return true if so, false if not.
- */
- public boolean hasAnnotations() {
- return getAnnotations() != null;
- }
-
- /**
- * Get's the annotations
- *
- * @return the annotation, null if does not have.
- */
- public String[] getAnnotations() {
- String signature = getMethodSignature();
- String javadoc = getJavaDoc();
- String annotations;
- if (javadoc != null) {
- annotations = StringUtil.middle(template, javadoc, signature);
- } else {
- annotations = StringUtil.before(template, signature);
- }
-
- if (StringUtil.isEmpty(annotations)) {
- return null;
- }
-
- if (annotations.indexOf("@") == -1) {
- return null;
- }
-
- // remove first and last \n
- annotations = annotations.trim();
- if (annotations.startsWith("\n")) {
- annotations = annotations.substring(1);
- }
- if (annotations.endsWith("\n")) {
- annotations = annotations.substring(0, annotations.length()-1);
- }
-
- return annotations.split("\n");
- }
-
- /**
- * Important to return filename only as it is the displayname in the UI.
- * @return filename for UI.
- */
- public String toString() {
- return fileName != null ? fileName : template;
- }
-
- public String getName() {
- return fileName;
- }
-
- public void copyFrom(TemplateResource templateResource) {
- fileName = templateResource.getFileName();
- template = templateResource.getTemplate();
- }
-
- public void setName(String name) {
- fileName = name;
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (!(o instanceof TemplateResource)) return false;
-
- TemplateResource that = (TemplateResource) o;
-
- return fileName.equals(that.fileName) && template.equals(that.template);
-
- }
-
- @Override
- public int hashCode() {
- return 31 * fileName.hashCode() + template.hashCode();
- }
+ @Override
+ public int hashCode() {
+ return 31 * fileName.hashCode() + template.hashCode();
+ }
}