blob: 9d4e3a6879dbe346993d72cd714a1b648ff89515 [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.camel.dataformat.bindy.annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
/**
* This annotation represents the root class of the model. When a message (FIX
* message containing key-value pairs) must be described in the model, we will
* use this annotation. The key pair separator (mandatory) defines the separator
* between the key and the value The pair separator (mandatory) allows to define
* which character separate the pairs from each other The name is optional and
* could be used in the future to bind a property which a different name The
* type (optional) allow to define the type of the message (e.g. FIX, EMX, ...)
* The version (optional) defines the version of the message (e.g. 4.1, ...) The
* crlf (optional) is used to add a new line after a record. By default, the
* value is WINDOWS The isOrdered (optional) boolean is used to ordered the
* message generated in output (line feed and carriage return on windows
*/
@Documented
@Retention(RetentionPolicy.RUNTIME)
public @interface Message {
/**
* Name describing the message (optional)
*
* @return String
*/
String name() default "";
/**
* Pair separator used to split the key value pairs in tokens (mandatory)
*
* @return String
*/
String pairSeparator();
/**
* Key value pair separator is used to split the values from their keys
* (mandatory)
*
* @return String
*/
String keyValuePairSeparator();
/**
* type is used to define the type of the message (e.g. FIX, EMX, ...)
* (optional)
*/
String type() default "FIX";
/**
* version defines the version of the message (e.g. 4.1, ...) (optional)
*/
String version() default "4.1";
/**
* Character to be used to add a carriage return after each record
* (optional) Three values can be used : WINDOWS, UNIX or MAC
*
* @return String
*/
String crlf() default "WINDOWS";
/**
* Indicates if the message must be ordered in output
*
* @return boolean
*/
boolean isOrdered() default false;
}