/* * Copyright (c) 2014 Google Inc. * * All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse * Public License v1.0 which accompanies this distribution, and is available at * * http://www.eclipse.org/legal/epl-v10.html */ package com.google.eclipse.protobuf.model.util; import com.google.eclipse.protobuf.protobuf.ProtobufFactory; import com.google.eclipse.protobuf.protobuf.StringLiteral; import com.google.eclipse.protobuf.protobuf.Syntax; import com.google.eclipse.protobuf.util.Strings; import com.google.inject.Inject; import com.google.inject.Singleton; /** * @author alruiz@google.com (Alex Ruiz) */ @Singleton public final class Syntaxes { public static final String PROTO2 = "proto2"; public static final String PROTO3 = "proto3"; @Inject private StringLiterals stringLiterals; /** * Indicates whether the given {@code String} is equal to <code>{@link #PROTO2}</code>. * @param s the {@code String} to check. * @return {@code true} if the given {@code String} is equal to "proto2," {@code false} otherwise. */ public boolean isSpecifyingProto2Syntax(String s) { return PROTO2.equals(s); } /** * Indicates whether the given {@code Syntax} specifies proto2 syntax. * @param s the {@code Syntax} to check. * @return {@code true} if the given {@code Syntax} specifies "proto2," {@code false} otherwise. */ public boolean isSpecifyingProto2Syntax(Syntax s) { return PROTO2.equals(getName(s)); } /** * Indicates whether the given {@code String} is equal to <code>{@link #PROTO3}</code>. * @param s the {@code String} to check. * @return {@code true} if the given {@code String} is equal to "proto3," {@code false} otherwise. */ public boolean isSpecifyingProto3Syntax(String s) { return PROTO3.equals(s); } /** * Indicates whether the given {@code Syntax} specifies proto3 syntax. * @param s the {@code Syntax} to check. * @return {@code true} if the given {@code Syntax} specifies "proto3," {@code false} otherwise. */ public boolean isSpecifyingProto3Syntax(Syntax s) { return PROTO3.equals(getName(s)); } /** * Returns the name of the syntax specified by this syntax element. */ public String getName(Syntax s) { return stringLiterals.getCombinedString(s.getName()); } /** * Sets the name of the syntax specified by this syntax element. */ public void setName(Syntax syntax, String name) { StringLiteral literal = ProtobufFactory.eINSTANCE.createStringLiteral(); literal.getChunks().add(Strings.quote(name)); syntax.setName(literal); } }