001/* 002 * Licensed to the Apache Software Foundation (ASF) under one or more 003 * contributor license agreements. See the NOTICE file distributed with 004 * this work for additional information regarding copyright ownership. 005 * The ASF licenses this file to You under the Apache License, Version 2.0 006 * (the "License"); you may not use this file except in compliance with 007 * the License. You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017package org.apache.camel.model.dataformat; 018 019import javax.xml.bind.annotation.XmlAccessType; 020import javax.xml.bind.annotation.XmlAccessorType; 021import javax.xml.bind.annotation.XmlAttribute; 022import javax.xml.bind.annotation.XmlRootElement; 023import javax.xml.bind.annotation.XmlTransient; 024 025import org.apache.camel.model.DataFormatDefinition; 026import org.apache.camel.spi.Metadata; 027 028/** 029 * Serialize and deserialize messages using Apache Thrift binary data format. 030 */ 031@Metadata(firstVersion = "2.20.0", label = "dataformat,transformation", title = "Thrift") 032@XmlRootElement(name = "thrift") 033@XmlAccessorType(XmlAccessType.FIELD) 034public class ThriftDataFormat extends DataFormatDefinition { 035 @XmlAttribute 036 private String instanceClass; 037 @XmlAttribute 038 @Metadata(enums = "binary,json,sjson", defaultValue = "binary") 039 private String contentTypeFormat; 040 @XmlTransient 041 private Object defaultInstance; 042 043 public ThriftDataFormat() { 044 super("thrift"); 045 } 046 047 public ThriftDataFormat(String instanceClass) { 048 this(); 049 setInstanceClass(instanceClass); 050 } 051 052 public ThriftDataFormat(String instanceClass, String contentTypeFormat) { 053 this(); 054 setInstanceClass(instanceClass); 055 setContentTypeFormat(contentTypeFormat); 056 } 057 058 public String getInstanceClass() { 059 return instanceClass; 060 } 061 062 /** 063 * Name of class to use when unmarshalling 064 */ 065 public void setInstanceClass(String instanceClass) { 066 this.instanceClass = instanceClass; 067 } 068 069 /** 070 * Defines a content type format in which thrift message will be 071 * serialized/deserialized from(to) the Java been. The format can either be 072 * native or json for either native binary thrift, json or simple json 073 * fields representation. The default value is binary. 074 */ 075 public void setContentTypeFormat(String contentTypeFormat) { 076 this.contentTypeFormat = contentTypeFormat; 077 } 078 079 public String getContentTypeFormat() { 080 return contentTypeFormat; 081 } 082 083 public Object getDefaultInstance() { 084 return defaultInstance; 085 } 086 087 public void setDefaultInstance(Object defaultInstance) { 088 this.defaultInstance = defaultInstance; 089 } 090 091}