/*
* 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.usergrid.mq.cassandra;
import java.util.List;
import org.apache.usergrid.persistence.cassandra.CFEnum;
import me.prettyprint.hector.api.ddl.ColumnDefinition;
import static me.prettyprint.hector.api.ddl.ComparatorType.COUNTERTYPE;
import static org.apache.usergrid.persistence.cassandra.CassandraPersistenceUtils.getIndexMetadata;
// Auto-generated by ApplicationCFGenerator
public enum QueuesCF implements CFEnum {
MESSAGE_PROPERTIES( "Entity_Properties", "BytesType" ),
QUEUE_PROPERTIES( "Queue_Properties", "BytesType" ),
QUEUE_INBOX( "Queue_Inbox", "UUIDType" ),
QUEUE_DICTIONARIES( "Queue_Dictionaries", "BytesType" ),
QUEUE_SUBSCRIBERS( "Queue_Subscribers", "BytesType" ),
QUEUE_SUBSCRIPTIONS( "Queue_Subscriptions", "BytesType" ),
/**
* Time based UUID list of future timeouts for messages. The UUID value is a pointer to the original message in the
* topic
*/
CONSUMER_QUEUE_TIMEOUTS( "MQ_Consumers_Timeout", "UUIDType" ),
CONSUMERS( "MQ_Consumers", "BytesType" ),
COUNTERS( "MQ_Counters", "BytesType", COUNTERTYPE.getClassName() ),
PROPERTY_INDEX( "MQ_Property_Index",
"DynamicCompositeType(a=>AsciiType,b=>BytesType,i=>IntegerType,x=>LexicalUUIDType,l=>LongType," +
"t=>TimeUUIDType,s=>UTF8Type,u=>UUIDType,A=>AsciiType(reversed=true),B=>BytesType(reversed=true)," +
"I=>IntegerType(reversed=true),X=>LexicalUUIDType(reversed=true),L=>LongType(reversed=true)," +
"T=>TimeUUIDType(reversed=true),S=>UTF8Type(reversed=true),U=>UUIDType(reversed=true))" ),
PROPERTY_INDEX_ENTRIES( "MQ_Property_Index_Entries",
"DynamicCompositeType(a=>AsciiType,b=>BytesType,i=>IntegerType,x=>LexicalUUIDType,l=>LongType," +
"t=>TimeUUIDType,s=>UTF8Type,u=>UUIDType,A=>AsciiType(reversed=true),B=>BytesType(reversed=true)," +
"I=>IntegerType(reversed=true),X=>LexicalUUIDType(reversed=true),L=>LongType(reversed=true)," +
"T=>TimeUUIDType(reversed=true),S=>UTF8Type(reversed=true),U=>UUIDType(reversed=true))" ),;
private final String cf;
private final String comparator;
private final String validator;
private final String indexes;
private final boolean create;
QueuesCF( String cf, String comparator ) {
this.cf = cf;
this.comparator = comparator;
validator = null;
indexes = null;
create = true;
}
QueuesCF( String cf, String comparator, boolean create ) {
this.cf = cf;
this.comparator = comparator;
validator = null;
indexes = null;
this.create = create;
}
QueuesCF( String cf, String comparator, String validator ) {
this.cf = cf;
this.comparator = comparator;
this.validator = validator;
indexes = null;
create = true;
}
QueuesCF( String cf, String comparator, String validator, String indexes ) {
this.cf = cf;
this.comparator = comparator;
this.validator = validator;
this.indexes = indexes;
create = true;
}
@Override
public String toString() {
return cf;
}
@Override
public String getColumnFamily() {
return cf;
}
@Override
public String getComparator() {
return comparator;
}
@Override
public String getValidator() {
return validator;
}
@Override
public boolean isComposite() {
return comparator.startsWith( "DynamicCompositeType" );
}
@Override
public List<ColumnDefinition> getMetadata() {
return getIndexMetadata( indexes );
}
@Override
public boolean create() {
return create;
}
}