/** * 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.model.dataformat; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlRootElement; import org.apache.camel.CamelContext; import org.apache.camel.model.DataFormatDefinition; import org.apache.camel.spi.DataFormat; import org.apache.camel.spi.Metadata; /** * Base64 data format * * @version */ @Metadata(firstVersion = "2.11.0", label = "dataformat,transformation", title = "Base64") @XmlRootElement(name = "base64") @XmlAccessorType(XmlAccessType.FIELD) public class Base64DataFormat extends DataFormatDefinition { @XmlAttribute @Metadata(defaultValue = "76") private Integer lineLength; @XmlAttribute @Metadata(defaultValue = "\\r\\n") private String lineSeparator; @XmlAttribute private Boolean urlSafe; public Base64DataFormat() { super("base64"); } @Override protected void configureDataFormat(DataFormat dataFormat, CamelContext camelContext) { if (getLineLength() != null) { setProperty(camelContext, dataFormat, "lineLength", getLineLength()); } if (getUrlSafe() != null) { setProperty(camelContext, dataFormat, "urlSafe", getUrlSafe()); } if (getLineSeparator() != null) { // line separator must be a byte[] byte[] bytes = getLineSeparator().getBytes(); setProperty(camelContext, dataFormat, "lineSeparator", bytes); } } public Integer getLineLength() { return lineLength; } /** * To specific a maximum line length for the encoded data. * <p/> * By default 76 is used. */ public void setLineLength(Integer lineLength) { this.lineLength = lineLength; } public String getLineSeparator() { return lineSeparator; } /** * The line separators to use. * <p/> * By default \r\n is used. */ public void setLineSeparator(String lineSeparator) { this.lineSeparator = lineSeparator; } public Boolean getUrlSafe() { return urlSafe; } /** * Instead of emitting '+' and '/' we emit '-' and '_' respectively. * urlSafe is only applied to encode operations. Decoding seamlessly handles both modes. * Is by default false. */ public void setUrlSafe(Boolean urlSafe) { this.urlSafe = urlSafe; } }