package com.chenyang.druid.sql.dialect.oracle.ast.stmt;

import com.chenyang.druid.sql.ast.SQLExpr;
import com.chenyang.druid.sql.ast.SQLName;
import com.chenyang.druid.sql.ast.statement.SQLCreateStatement;
import com.chenyang.druid.sql.dialect.oracle.visitor.OracleASTVisitor;

public class OracleCreateDatabaseDbLinkStatement extends OracleStatementImpl implements SQLCreateStatement {
   private boolean shared;
   private boolean _public;
   private SQLName name;
   private SQLName user;
   private String password;
   private SQLExpr using;
   private SQLExpr authenticatedUser;
   private String authenticatedPassword;

   public boolean isShared() {
      return this.shared;
   }

   public void setShared(boolean shared) {
      this.shared = shared;
   }

   public boolean isPublic() {
      return this._public;
   }

   public void setPublic(boolean value) {
      this._public = value;
   }

   public SQLName getName() {
      return this.name;
   }

   public void setName(SQLName name) {
      this.name = name;
   }

   public SQLName getUser() {
      return this.user;
   }

   public void setUser(SQLName user) {
      this.user = user;
   }

   public String getPassword() {
      return this.password;
   }

   public void setPassword(String password) {
      this.password = password;
   }

   public SQLExpr getUsing() {
      return this.using;
   }

   public void setUsing(SQLExpr using) {
      this.using = using;
   }

   public SQLExpr getAuthenticatedUser() {
      return this.authenticatedUser;
   }

   public void setAuthenticatedUser(SQLExpr authenticatedUser) {
      this.authenticatedUser = authenticatedUser;
   }

   public String getAuthenticatedPassword() {
      return this.authenticatedPassword;
   }

   public void setAuthenticatedPassword(String authenticatedPassword) {
      this.authenticatedPassword = authenticatedPassword;
   }

   public void accept0(OracleASTVisitor visitor) {
      if (visitor.visit(this)) {
         this.acceptChild(visitor, this.name);
         this.acceptChild(visitor, this.user);
         this.acceptChild(visitor, this.using);
         this.acceptChild(visitor, this.authenticatedUser);
      }

      visitor.endVisit(this);
   }
}
