001package org.hl7.fhir.utilities.graphql;
002
003/*-
004 * #%L
005 * org.hl7.fhir.utilities
006 * %%
007 * Copyright (C) 2014 - 2019 Health Level 7
008 * %%
009 * Licensed under the Apache License, Version 2.0 (the "License");
010 * you may not use this file except in compliance with the License.
011 * You may obtain a copy of the License at
012 * 
013 *      http://www.apache.org/licenses/LICENSE-2.0
014 * 
015 * Unless required by applicable law or agreed to in writing, software
016 * distributed under the License is distributed on an "AS IS" BASIS,
017 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
018 * See the License for the specific language governing permissions and
019 * limitations under the License.
020 * #L%
021 */
022
023
024import java.util.ArrayList;
025import java.util.List;
026
027public class Field {
028  private String name;
029  private List<Selection> selectionSet = new ArrayList<Selection>();
030  private String alias;
031  private List<Argument> arguments = new ArrayList<Argument>();
032  private List<Directive> directives = new ArrayList<Directive>();
033
034  public String getName() {
035    return name;
036  }
037
038
039  public void setName(String name) {
040    this.name = name;
041  }
042
043
044  public String getAlias() {
045    return alias;
046  }
047
048
049  public void setAlias(String alias) {
050    this.alias = alias;
051  }
052
053
054  public List<Selection> getSelectionSet() {
055    return selectionSet;
056  }
057
058
059  public List<Argument> getArguments() {
060    return arguments;
061  }
062
063
064  public List<Directive> getDirectives() {
065    return directives;
066  }
067
068
069  public Argument argument(String name) {
070    for (Argument p : arguments) {
071      if (p.name.equals(name))
072        return p;
073    }
074    return null;
075  }
076
077
078  public boolean hasDirective(String name) {
079    for (Directive d : directives)
080      if (d.getName().equals(name))
081        return true;
082    return false;
083  }
084
085  public Directive directive(String name) {
086    for (Directive d : directives)
087      if (d.getName().equals(name))
088        return d;
089    return null;
090  }
091}