Skip to content

Commit

Permalink
Polishing
Browse files Browse the repository at this point in the history
  • Loading branch information
topframe committed Jun 22, 2019
1 parent e7ab6e1 commit 86d6ce6
Show file tree
Hide file tree
Showing 11 changed files with 67 additions and 41 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -619,7 +619,7 @@ private TransformRule parseTransformRule(Transform transformAnno) {
return transformRule;
}

private DispatchRule parseDispatchRule(Dispatch dispatchAnno) {
private DispatchRule parseDispatchRule(Dispatch dispatchAnno) throws IllegalRuleException {
String name = StringUtils.emptyToNull(dispatchAnno.value());
if (name == null) {
name = StringUtils.emptyToNull(dispatchAnno.name());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,17 +79,18 @@ public String getName(Activity activity) {
* @param name the new dispatch name
*/
public void setName(String name) {
if (name == null) {
setName(null, null);
return;
}
this.name = name;

List<Token> tokens = Tokenizer.tokenize(name, true);
int tokenCount = 0;

for (Token t : tokens) {
if (t.getType() != TokenType.TEXT) {
tokenCount++;
}
}

if (tokenCount > 0) {
this.nameTokens = tokens.toArray(new Token[0]);
} else {
Expand Down Expand Up @@ -219,9 +220,13 @@ public String toString(ViewDispatcher viewDispatcher, String targetName) {
* @param encoding the character encoding
* @param defaultResponse whether it is the default response
* @return an instance of DispatchRule
* @throws IllegalRuleException if an illegal rule is found
*/
public static DispatchRule newInstance(String name, String dispatcherName, String contentType,
String encoding, Boolean defaultResponse) {
String encoding, Boolean defaultResponse) throws IllegalRuleException {
if (name == null) {
throw new IllegalRuleException("name must not be null");
}
DispatchRule dr = new DispatchRule();
dr.setName(name);
dr.setDispatcherName(dispatcherName);
Expand All @@ -239,8 +244,10 @@ public static DispatchRule newInstance(String name, String dispatcherName, Strin
* @param contentType the content type
* @param encoding the character encoding
* @return the dispatch rule
* @throws IllegalRuleException if an illegal rule is found
*/
public static DispatchRule newInstance(String name, String dispatcher, String contentType, String encoding) {
public static DispatchRule newInstance(String name, String dispatcher, String contentType, String encoding)
throws IllegalRuleException {
return newInstance(name, dispatcher, contentType, encoding, null);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -132,9 +132,9 @@ private void saveAsAponFile(FileRuleAppender fileRuleAppender) {
AponWriter aponWriter;
if (encoding != null) {
OutputStream outputStream = new FileOutputStream(aponFile);
aponWriter = new AponWriter(new OutputStreamWriter(outputStream, encoding));
aponWriter = new AponWriter(new OutputStreamWriter(outputStream, encoding), false);
} else {
aponWriter = new AponWriter(new FileWriter(aponFile));
aponWriter = new AponWriter(new FileWriter(aponFile), false);
}

try {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -275,22 +275,28 @@ private void convertAsAspectRule(AspectParameters aspectParameters) throws Illeg
AdviceActionParameters beforeAdviceParameters = adviceParameters.getParameters(AdviceParameters.beforeAdvice);
if (beforeAdviceParameters != null) {
ActionParameters actionParameters = beforeAdviceParameters.getParameters(AdviceActionParameters.action);
AspectAdviceRule aspectAdviceRule = aspectRule.touchAspectAdviceRule(AspectAdviceType.BEFORE);
convertAsActionRule(actionParameters, aspectAdviceRule);
if (actionParameters != null) {
AspectAdviceRule aspectAdviceRule = aspectRule.touchAspectAdviceRule(AspectAdviceType.BEFORE);
convertAsActionRule(actionParameters, aspectAdviceRule);
}
}

AdviceActionParameters afterAdviceParameters = adviceParameters.getParameters(AdviceParameters.afterAdvice);
if (afterAdviceParameters != null) {
ActionParameters actionParameters = afterAdviceParameters.getParameters(AdviceActionParameters.action);
AspectAdviceRule aspectAdviceRule = aspectRule.touchAspectAdviceRule(AspectAdviceType.AFTER);
convertAsActionRule(actionParameters, aspectAdviceRule);
if (actionParameters != null) {
AspectAdviceRule aspectAdviceRule = aspectRule.touchAspectAdviceRule(AspectAdviceType.AFTER);
convertAsActionRule(actionParameters, aspectAdviceRule);
}
}

AdviceActionParameters aroundAdviceParameters = adviceParameters.getParameters(AdviceParameters.aroundAdvice);
if (aroundAdviceParameters != null) {
ActionParameters actionParameters = aroundAdviceParameters.getParameters(AdviceActionParameters.action);
AspectAdviceRule aspectAdviceRule = aspectRule.touchAspectAdviceRule(AspectAdviceType.AROUND);
convertAsActionRule(actionParameters, aspectAdviceRule);
if (actionParameters != null) {
AspectAdviceRule aspectAdviceRule = aspectRule.touchAspectAdviceRule(AspectAdviceType.AROUND);
convertAsActionRule(actionParameters, aspectAdviceRule);
}
}

AdviceActionParameters finallyAdviceParameters = adviceParameters.getParameters(AdviceParameters.finallyAdvice);
Expand Down Expand Up @@ -840,7 +846,9 @@ private TransformRule convertAsTransformRule(TransformParameters transformParame
}
if (callParameters != null) {
String templateId = StringUtils.emptyToNull(callParameters.getString(CallParameters.template));
TransformRule.updateTemplateId(transformRule, templateId);
if (templateId !=null) {
TransformRule.updateTemplateId(transformRule, templateId);
}
}
if (templateParameters != null) {
String engine = templateParameters.getString(TemplateParameters.engine);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,7 @@ private void read(Parameters parameters, char openBracket, String name, Paramete
if (parameterValueType == ParameterValueType.PARAMETERS && CURLY_BRACKET_OPEN != cchar) {
throw new AponSyntaxException(lineNumber, line, tline, parameterValue, parameterValueType);
}
if (parameterValueType == ParameterValueType.TEXT && ROUND_BRACKET_OPEN != cchar) {
if (parameterValueType == ParameterValueType.TEXT && !NULL.equals(value) && ROUND_BRACKET_OPEN != cchar) {
throw new AponSyntaxException(lineNumber, line, tline, parameterValue, parameterValueType);
}
}
Expand Down
44 changes: 28 additions & 16 deletions core/src/main/java/com/aspectran/core/util/apon/AponWriter.java
Original file line number Diff line number Diff line change
Expand Up @@ -34,11 +34,11 @@
*/
public class AponWriter extends AponFormat implements Flushable, Closeable {

private Writer writer;
private final Writer writer;

private boolean nullWritable = true;
private final boolean nullWritable;

private boolean typeHintWritable = false;
private boolean typeHintWritable;

private String indentString = DEFAULT_INDENT_STRING;

Expand All @@ -50,7 +50,18 @@ public class AponWriter extends AponFormat implements Flushable, Closeable {
* @param writer the character-output stream
*/
public AponWriter(Writer writer) {
this(writer, true);
}

/**
* Instantiates a new AponWriter.
*
* @param writer the character-output stream
* @param nullWritable whether to write a null parameter
*/
public AponWriter(Writer writer, boolean nullWritable) {
this.writer = writer;
this.nullWritable = nullWritable;
}

/**
Expand All @@ -64,30 +75,32 @@ public AponWriter(File file) throws IOException {
}

/**
* Specifies the indent string.
* Instantiates a new AponWriter.
*
* @param indentString the indentation string, by default " " (two blanks).
* @param file a File object to write to
* @param nullWritable whether to write a null parameter
* @throws IOException if an I/O error occurs
*/
public void setIndentString(String indentString) {
this.indentString = indentString;
public AponWriter(File file, boolean nullWritable) throws IOException {
this(new FileWriter(file), nullWritable);
}

/**
* Sets whether to write a null parameter.
* Sets whether write a type hint for values.
*
* @param nullWritable true, write a null parameter
* @param typeHintWritable true, write a type hint for values
*/
public void setNullWritable(boolean nullWritable) {
this.nullWritable = nullWritable;
public void setTypeHintWritable(boolean typeHintWritable) {
this.typeHintWritable = typeHintWritable;
}

/**
* Sets whether write a type hint for values.
* Specifies the indent string.
*
* @param typeHintWritable true, write a type hint for values
* @param indentString the indentation string, by default " " (two blanks).
*/
public void setTypeHintWritable(boolean typeHintWritable) {
this.typeHintWritable = typeHintWritable;
public void setIndentString(String indentString) {
this.indentString = indentString;
}

/**
Expand Down Expand Up @@ -496,7 +509,6 @@ public void close() throws IOException {
if (writer != null) {
writer.close();
}
writer = null;
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@ void writeTest() throws IOException, AponParseException {
File outputFile = new File(ResourceUtils.getResourceAsFile("config/apon"), "apon-test-output.apon");

try (AponWriter aponWriter = new AponWriter(outputFile)) {
//aponWriter.setNullWritable(true);
//aponWriter.setTypeHintWrite(true);
aponWriter.write(parameters);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,7 @@ private CommandResult detailAspectRule(DaemonService service, String[] targets)
writer.write(AponFormat.NEW_LINE);
}

AponWriter aponWriter = new AponWriter(writer);
AponWriter aponWriter = new AponWriter(writer, false);
aponWriter.write(aspectParameters);
count++;
}
Expand Down Expand Up @@ -324,7 +324,7 @@ private CommandResult detailTransletRule(DaemonService service, String[] targets
writer.write(AponFormat.NEW_LINE);
}

AponWriter aponWriter = new AponWriter(writer);
AponWriter aponWriter = new AponWriter(writer, false);
aponWriter.write(transletParameters);
count++;
}
Expand Down Expand Up @@ -381,7 +381,7 @@ private CommandResult detailScheduledJobRule(DaemonService service, String[] tar
writer.write("----------------------------------------------------------------------------");
writer.write(AponFormat.NEW_LINE);
}
AponWriter aponWriter = new AponWriter(writer);
AponWriter aponWriter = new AponWriter(writer, false);
aponWriter.write(scheduleParameters);
count++;
}
Expand Down Expand Up @@ -425,7 +425,7 @@ private CommandResult detailScheduledJobRule(DaemonService service, String[] tar
writer.write("----------------------------------------------------------------------------");
writer.write(AponFormat.NEW_LINE);
}
AponWriter aponWriter = new AponWriter(writer);
AponWriter aponWriter = new AponWriter(writer, false);
aponWriter.write(scheduleParameters);
count++;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,7 @@ private void detailAspectRule(ShellService service, Console console, String[] as
if (count == 0) {
console.writeLine("----------------------------------------------------------------------------");
}
AponWriter aponWriter = new AponWriter(console.getWriter());
AponWriter aponWriter = new AponWriter(console.getWriter(), false);
aponWriter.write(aspectParameters);
console.writeLine("----------------------------------------------------------------------------");
count++;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ private void detailScheduledJobRule(ShellService service, Console console, Strin
if (count == 0) {
console.writeLine("----------------------------------------------------------------------------");
}
AponWriter aponWriter = new AponWriter(console.getWriter());
AponWriter aponWriter = new AponWriter(console.getWriter(), false);
aponWriter.write(scheduleParameters);
console.writeLine("----------------------------------------------------------------------------");
count++;
Expand All @@ -179,7 +179,7 @@ private void detailScheduledJobRule(ShellService service, Console console, Strin
if (count == 0) {
console.writeLine("----------------------------------------------------------------------------");
}
AponWriter aponWriter = new AponWriter(console.getWriter());
AponWriter aponWriter = new AponWriter(console.getWriter(), false);
aponWriter.write(scheduleParameters);
console.writeLine("----------------------------------------------------------------------------");
count++;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -236,7 +236,7 @@ private void detailTransletRule(ShellService service, Console console, String[]
if (count == 0) {
console.writeLine("----------------------------------------------------------------------------");
}
AponWriter aponWriter = new AponWriter(console.getWriter());
AponWriter aponWriter = new AponWriter(console.getWriter(), false);
aponWriter.write(transletParameters);
console.writeLine("----------------------------------------------------------------------------");
count++;
Expand Down

0 comments on commit 86d6ce6

Please sign in to comment.