/* * JBoss, Home of Professional Open Source * Copyright 2013, Red Hat, Inc. and/or its affiliates, and individual * contributors by the @authors tag. See the copyright.txt in the * distribution for a full listing of individual contributors. * * Licensed 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.switchyard.quickstarts.camel.sap.binding.metadata; import java.util.ArrayList; import java.util.List; import javax.enterprise.inject.Produces; import javax.inject.Named; import org.fusesource.camel.component.sap.model.rfc.DataType; import org.fusesource.camel.component.sap.model.rfc.FieldMetaData; import org.fusesource.camel.component.sap.model.rfc.RecordMetaData; import org.fusesource.camel.component.sap.model.rfc.RfcFactory; /** * A flight info metadata producer. */ public class FlightInfoMetadataProducer { @Produces @Named("flightInfo") public RecordMetaData createFlightInfo( @Named("flightInfoFieldMetaData") List<FieldMetaData> flightInfoFieldMetaData ) { RecordMetaData flightinfo = RfcFactory.eINSTANCE.createRecordMetaData(); flightinfo.setName("FLTINFO_STRUCTURE"); flightinfo.setRecordFieldMetaData(flightInfoFieldMetaData); return flightinfo; } @Produces @Named("flightInfoFieldMetaData") public List<FieldMetaData> createFlightInfoFieldList() { List<FieldMetaData> flightFields = new ArrayList<FieldMetaData>(); FieldMetaData flighttime = RfcFactory.eINSTANCE.createFieldMetaData(); flighttime.setName("FLIGHTTIME"); flighttime.setType(DataType.NUM); flighttime.setByteLength(10); flighttime.setByteOffset(0); flighttime.setUnicodeByteLength(20); flighttime.setUnicodeByteOffset(0); flightFields.add(flighttime); FieldMetaData cityfrom = RfcFactory.eINSTANCE.createFieldMetaData(); cityfrom.setName("CITYFROM"); cityfrom.setType(DataType.CHAR); cityfrom.setByteLength(20); cityfrom.setByteOffset(10); cityfrom.setUnicodeByteLength(40); cityfrom.setUnicodeByteOffset(20); flightFields.add(cityfrom); FieldMetaData depdate = RfcFactory.eINSTANCE.createFieldMetaData(); depdate.setName("DEPDATE"); depdate.setType(DataType.DATE); depdate.setByteLength(8); depdate.setByteOffset(30); depdate.setUnicodeByteLength(16); depdate.setUnicodeByteOffset(60); flightFields.add(depdate); FieldMetaData deptime = RfcFactory.eINSTANCE.createFieldMetaData(); deptime.setName("DEPTIME"); deptime.setType(DataType.TIME); deptime.setByteLength(6); deptime.setByteOffset(38); deptime.setUnicodeByteLength(12); deptime.setUnicodeByteOffset(76); flightFields.add(deptime); FieldMetaData cityto = RfcFactory.eINSTANCE.createFieldMetaData(); cityto.setName("CITYTO"); cityto.setType(DataType.CHAR); cityto.setByteLength(20); cityto.setByteOffset(44); cityto.setUnicodeByteLength(40); cityto.setUnicodeByteOffset(88); flightFields.add(cityto); FieldMetaData arrdate = RfcFactory.eINSTANCE.createFieldMetaData(); arrdate.setName("ARRDATE"); arrdate.setType(DataType.DATE); arrdate.setByteLength(8); arrdate.setByteOffset(64); arrdate.setUnicodeByteLength(16); arrdate.setUnicodeByteOffset(128); flightFields.add(arrdate); FieldMetaData arrtime = RfcFactory.eINSTANCE.createFieldMetaData(); arrtime.setName("ARRTIME"); arrtime.setType(DataType.TIME); arrtime.setByteLength(6); arrtime.setByteOffset(72); arrtime.setUnicodeByteLength(12); arrtime.setUnicodeByteOffset(144); flightFields.add(arrtime); return flightFields; } }