/***************************************************************************
* Copyright (C) by Fabrizio Montesi *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU Library General Public License as *
* published by the Free Software Foundation; either version 2 of the *
* License, or (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU Library General Public *
* License along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
* *
* For details about the authors of this software, see the AUTHORS file. *
***************************************************************************/
package jolie.lang;
import java.nio.charset.Charset;
import jolie.lang.parse.Scanner;
import jolie.util.Range;
public final class Constants
{
private Constants() {}
public interface Manifest
{
// JOLIE Extensions
public final static String ChannelExtension = "X-JOLIE-ChannelExtension";
public final static String ListenerExtension = "X-JOLIE-ListenerExtension";
public final static String ProtocolExtension = "X-JOLIE-ProtocolExtension";
// JAP Manifest
public final static String MainProgram = "X-JOLIE-Main-Program";
public final static String Options = "X-JOLIE-Options";
//public final static String Libraries = "X-JOLIE-Libraries";
}
static public enum Predefined
{
ATTRIBUTES( "@Attributes", "@Attributes" ),
HTTP_BASIC_AUTHENTICATION( "@HttpBasicAuthentication", "@HttpBasicAuthentication" ),
PI( "PI", java.lang.Math.PI );
private final String id;
private final Scanner.Token token;
public static Predefined get( String id )
{
for ( Predefined p : Predefined.values() ) {
if ( p.id.equals( id ) ) {
return p;
}
}
return null;
}
Predefined( String id, String content )
{
this.id = id;
this.token = new Scanner.Token( Scanner.TokenType.STRING, content );
}
Predefined( String id, Integer content )
{
this.id = id;
this.token = new Scanner.Token( Scanner.TokenType.INT, content.toString() );
}
Predefined( String id, Double content )
{
this.id = id;
this.token = new Scanner.Token( Scanner.TokenType.DOUBLE, content.toString() );
}
public final String id()
{
return id;
}
public final Scanner.Token token()
{
return token;
}
}
public final static Range RANGE_ONE_TO_ONE = new Range( 1, 1 );
public static interface Keywords
{
public static final String DEFAULT_HANDLER_NAME = "default";
}
public static final String TYPE_MISMATCH_FAULT_NAME = "TypeMismatch";
public static final String IO_EXCEPTION_FAULT_NAME = "IOException";
public static final String MONITOR_OUTPUTPORT_NAME = "#Monitor";
public static final String INPUT_PORTS_NODE_NAME = "inputPorts";
public static final String PROTOCOL_NODE_NAME = "protocol";
public static final String LOCATION_NODE_NAME = "location";
public static final String LOCAL_LOCATION_KEYWORD = "local";
public static final String VERSION = "Jolie 1.0";
public static final String COPYRIGHT = "(C) 2006-2013 the Jolie team";
//public static String newLineString = System.getProperty( "line.separator" );
public static final String fileSeparator = System.getProperty( "file.separator" );
public static final String pathSeparator = System.getProperty( "path.separator" );
public static final String GLOBAL = "global";
public static final String CSETS = "csets";
public static final Charset defaultCharset;
static {
defaultCharset = Charset.forName( "UTF-8" );
}
public enum EmbeddedServiceType
{
JOLIE, JAVA, JAVASCRIPT, UNSUPPORTED
}
public static EmbeddedServiceType stringToEmbeddedServiceType( String str )
{
if ( "jolie".equalsIgnoreCase( str ) ) {
return EmbeddedServiceType.JOLIE;
} else if ( "java".equalsIgnoreCase( str ) ) {
return EmbeddedServiceType.JAVA;
} else if ( "javascript".equalsIgnoreCase( str ) ) {
return EmbeddedServiceType.JAVASCRIPT;
}
return EmbeddedServiceType.UNSUPPORTED;
}
public enum ExecutionMode
{
SINGLE, SEQUENTIAL, CONCURRENT
}
public enum OperationType
{
ONE_WAY,
REQUEST_RESPONSE
}
public enum OperandType
{
ADD, SUBTRACT,
MULTIPLY, DIVIDE,
MODULUS
}
public static long serialVersionUID()
{
return 1L;
}
}