public void setNodeType(SimpleNode node) { if (types.size() == 1) { ModifiedType modifiedType = types.get(0); node.setType(modifiedType.getType()); if (modifiedType.getModifiers().isNullable()) node.addModifier(Modifiers.NULLABLE); if (modifiedType.getModifiers().isReadonly()) node.addModifier(Modifiers.READONLY); if (modifiedType.getModifiers().isImmutable()) node.addModifier(Modifiers.IMMUTABLE); } else node.setType(this); }
@Override public SequenceType partiallyReplace(List<ModifiedType> values, List<ModifiedType> replacements) { SequenceType temp = new SequenceType(); for (int i = 0; i < types.size(); i++) { ModifiedType type = types.get(i); if (type != null) { SimpleModifiedType dummy = new SimpleModifiedType( type.getType().partiallyReplace(values, replacements), type.getModifiers()); temp.add(dummy); } else temp.add(null); } return temp; }
public String toString(String begin, String end, int options) { StringBuilder builder = new StringBuilder(begin); boolean first = true; for (ModifiedType type : types) { if (first) first = false; else builder.append(","); if (type != null) { builder.append(type.getModifiers().toString()); builder.append(type.getType().toString(options)); } } builder.append(end); return builder.toString(); }
public Modifiers getModifiers(int i) { ModifiedType modifiedType = types.get(i); return modifiedType == null ? null : modifiedType.getModifiers(); }