All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jamon.codegen.OptionalArgument Maven / Gradle / Ivy

/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

package org.jamon.codegen;

import org.jamon.node.OptionalArgNode;
import org.jamon.util.StringUtils;

public class OptionalArgument extends AbstractArgument {
  public OptionalArgument(OptionalArgNode arg) {
    super(arg);
    defaultValue = arg.getValue().getValue();
  }

  public OptionalArgument(String name, String type, String defaultValue) {
    super(name, type, null);
    this.defaultValue = defaultValue;
  }

  public void setDefault(String defaultValue) {
    this.defaultValue = defaultValue;
  }

  public String getDefault() {
    return defaultValue;
  }

  public String getIsNotDefaultName() {
    return "get" + StringUtils.capitalize(getName()) + "__IsNotDefault";
  }

  @Override
  public void generateImplDataCode(CodeWriter writer) {
    super.generateImplDataCode(writer);

    writer.println("public boolean " + getIsNotDefaultName() + "()");
    writer.openBlock();
    writer.println("return m_" + getName() + "__IsNotDefault;");
    writer.closeBlock();

    writer.println("private boolean m_" + getName() + "__IsNotDefault;");
  }

  @Override
  protected void generateImplDataSetterCode(CodeWriter writer) {
    super.generateImplDataSetterCode(writer);
    writer.println("m_" + getName() + "__IsNotDefault = true;");

  }

  @Override
  public String toString() {
    return "OptionalArg: {name => " + getName() + ", type => " + getType() + ", defualt => " + getDefault() + "}";
  }

  private String defaultValue;
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy