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 */
017 package org.apache.camel.component.jcr;
018
019 import java.io.InputStream;
020 import java.util.Calendar;
021
022 import javax.jcr.Value;
023
024 import org.apache.camel.Converter;
025 import org.apache.jackrabbit.value.BinaryValue;
026 import org.apache.jackrabbit.value.BooleanValue;
027 import org.apache.jackrabbit.value.DateValue;
028 import org.apache.jackrabbit.value.StringValue;
029
030 /**
031 * A helper class to transform Object into JCR {@link Value} implementations
032 */
033 @Converter
034 public class JcrConverter {
035
036 /**
037 * Converts a {@link Boolean} into a {@link Value}
038 * @param bool the boolean
039 * @return the value
040 */
041 @Converter
042 public Value toValue(Boolean bool) {
043 return new BooleanValue(bool);
044 }
045
046 /**
047 * Converts an {@link InputStream} into a {@link Value}
048 * @param stream the input stream
049 * @return the value
050 */
051 @Converter
052 public Value toValue(InputStream stream) {
053 return new BinaryValue(stream);
054 }
055
056 /**
057 * Converts a {@link Calendar} into a {@link Value}
058 * @param calendar the calendar
059 * @return the value
060 */
061 @Converter
062 public Value toValue(Calendar calendar) {
063 return new DateValue(calendar);
064 }
065
066 /**
067 * Converts a {@link String} into a {@link Value}
068 * @param value the string
069 * @return the value
070 */
071 @Converter
072 public Value toValue(String value) {
073 return new StringValue(value);
074 }
075
076 }