/** * 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.component.gora; import com.google.common.base.Strings; import org.apache.camel.spi.Metadata; import org.apache.camel.spi.UriParam; import org.apache.camel.spi.UriParams; import org.apache.camel.spi.UriPath; import org.apache.hadoop.conf.Configuration; import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Strings.isNullOrEmpty; /** * Gora Configuration. */ @UriParams public class GoraConfiguration { @UriPath @Metadata(required = "true") private String name; @UriParam private String keyClass; @UriParam private String valueClass; @UriParam private String dataStoreClass; @UriParam(label = "advanced") private Configuration hadoopConfiguration; @UriParam(label = "consumer") private long startTime; @UriParam(label = "consumer") private long endTime; @UriParam(label = "consumer") private long timeRangeFrom; @UriParam(label = "consumer") private long timeRangeTo; @UriParam(label = "consumer") private long limit; @UriParam(label = "consumer") private long timestamp; @UriParam(label = "consumer") private Object startKey; @UriParam(label = "consumer") private Object endKey; @UriParam(label = "consumer") private Object keyRangeFrom; @UriParam(label = "consumer") private Object keyRangeTo; @UriParam(label = "consumer") private Strings fields; @UriParam(label = "consumer", defaultValue = "1") private int concurrentConsumers = 1; @UriParam(label = "producer", defaultValue = "true") private boolean flushOnEveryOperation = true; public GoraConfiguration() { this.hadoopConfiguration = new Configuration(); } public String getKeyClass() { return keyClass; } /** * The type class of the key */ public void setKeyClass(final String keyClass) { if (isNullOrEmpty(keyClass)) { throw new IllegalArgumentException("Key class could not be null or empty!"); } this.keyClass = keyClass; } public String getValueClass() { return valueClass; } /** * The type of the value */ public void setValueClass(final String valueClass) { if (isNullOrEmpty(valueClass)) { throw new IllegalArgumentException("Value class could not be null or empty!"); } this.valueClass = valueClass; } public String getDataStoreClass() { return dataStoreClass; } /** * The type of the dataStore */ public void setDataStoreClass(String dataStoreClass) { if (isNullOrEmpty(dataStoreClass)) { throw new IllegalArgumentException("DataStore class could not be null or empty!"); } this.dataStoreClass = dataStoreClass; } public Configuration getHadoopConfiguration() { return hadoopConfiguration; } public long getStartTime() { return startTime; } /** * The Start Time */ public void setStartTime(long startTime) { this.startTime = startTime; } public long getEndTime() { return endTime; } /** * The End Time */ public void setEndTime(long endTime) { this.endTime = endTime; } public long getTimeRangeFrom() { return timeRangeFrom; } /** * The Time Range From */ public void setTimeRangeFrom(long timeRangeFrom) { this.timeRangeFrom = timeRangeFrom; } public long getTimeRangeTo() { return timeRangeTo; } /** * The Time Range To */ public void setTimeRangeTo(long timeRangeTo) { this.timeRangeTo = timeRangeTo; } public long getLimit() { return limit; } /** * The Limit */ public void setLimit(long limit) { this.limit = limit; } public long getTimestamp() { return timestamp; } /** * The Timestamp */ public void setTimestamp(long timestamp) { this.timestamp = timestamp; } public Object getStartKey() { return startKey; } /** * The Start Key */ public void setStartKey(Object startKey) { this.startKey = startKey; } public Object getEndKey() { return endKey; } /** * The End Key */ public void setEndKey(Object endKey) { this.endKey = endKey; } public Object getKeyRangeFrom() { return keyRangeFrom; } /** * The Key Range From */ public void setKeyRangeFrom(Object keyRangeFrom) { this.keyRangeFrom = keyRangeFrom; } public Object getKeyRangeTo() { return keyRangeTo; } /** * The Key Range To */ public void setKeyRangeTo(Object keyRangeTo) { this.keyRangeTo = keyRangeTo; } public Strings getFields() { return fields; } /** * The Fields */ public void setFields(Strings fields) { this.fields = fields; } public int getConcurrentConsumers() { return concurrentConsumers; } /** * Number of concurrent consumers */ public void setConcurrentConsumers(int concurrentConsumers) { this.concurrentConsumers = concurrentConsumers; } public boolean isFlushOnEveryOperation() { return flushOnEveryOperation; } /** * Flush on every operation */ public void setFlushOnEveryOperation(boolean flushOnEveryOperation) { this.flushOnEveryOperation = flushOnEveryOperation; } /** * Hadoop Configuration */ public void setHadoopConfiguration(Configuration hadoopConfiguration) { checkNotNull(hadoopConfiguration, "Hadoop Configuration could not be null!"); this.hadoopConfiguration = hadoopConfiguration; } public String getName() { return name; } /** * Instance name */ public void setName(String name) { this.name = name; } }