001/* 002 * Copyright (c) 2012-2017 Institut National des Sciences Appliquées de Lyon (INSA-Lyon) 003 * 004 * All rights reserved. This program and the accompanying materials 005 * are made available under the terms of the Eclipse Public License v1.0 006 * which accompanies this distribution, and is available at 007 * http://www.eclipse.org/legal/epl-v10.html 008 */ 009 010package org.eclipse.golo.compiler.parser; 011 012import java.util.List; 013 014public class ASTAugmentDeclaration extends GoloASTNode implements NamedNode { 015 016 private String target; 017 private List<String> augmentationNames; 018 019 public ASTAugmentDeclaration(int id) { 020 super(id); 021 } 022 023 public ASTAugmentDeclaration(GoloParser p, int id) { 024 super(p, id); 025 } 026 027 public String getTarget() { 028 return target; 029 } 030 031 public void setTarget(String target) { 032 this.target = target; 033 } 034 035 public List<String> getAugmentationNames() { 036 return augmentationNames; 037 } 038 039 public void setAugmentationNames(List<String> names) { 040 this.augmentationNames = names; 041 } 042 043 public boolean isNamedAugmentation() { 044 return (augmentationNames != null && !augmentationNames.isEmpty()); 045 } 046 047 @Override 048 public String toString() { 049 return "ASTAugmentDeclaration{" 050 + "target='" + target + '\'' 051 + (isNamedAugmentation() 052 ? ", augmentations=" + augmentationNames 053 : "") 054 + '}'; 055 } 056 057 @Override 058 public Object jjtAccept(GoloParserVisitor visitor, Object data) { 059 return visitor.visit(this, data); 060 } 061 062 @Override 063 public String getName() { 064 return getTarget(); 065 } 066 067 @Override 068 public void setName(String name) { 069 setTarget(name); 070 } 071}