/*
* Copyright 2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Amazon Software License (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/asl/
*
* or in the "license" file accompanying this file. This file 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 com.amazonaws.hbase.connector;
import java.util.HashMap;
import java.util.Map;
import com.amazonaws.hbase.kinesis.KinesisMessageModel;
import com.amazonaws.services.kinesis.connectors.BasicJsonTransformer;
/**
* A custom transformer for {@link KinesisMessageModel} records in JSON format.
* The output is key/value pairs which are compatible with HBase insertions
*/
public class KinesisMessageModelHBaseTransformer extends BasicJsonTransformer<KinesisMessageModel,Map<String,String>>
implements HBaseTransformer<KinesisMessageModel> {
/**
* Creates a new KinesisMessageModelHBaseTransformer.
*/
public KinesisMessageModelHBaseTransformer() {
super(KinesisMessageModel.class);
}
@Override
public Map<String, String> fromClass(KinesisMessageModel message) {
Map<String, String> item = new HashMap<String, String>();
item.put("userid", Integer.toString(message.userid));
item.put("username", message.username);
item.put("firstname", message.firstname);
item.put("lastname", message.lastname);
item.put("city", message.city);
item.put("state", message.state);
item.put("email", message.email);
item.put("phone", message.phone);
item.put("likesports", Boolean.toString(message.likesports));
item.put("liketheatre", Boolean.toString(message.liketheatre));
item.put("likeconcerts", Boolean.toString(message.likeconcerts));
item.put("likejazz", Boolean.toString(message.likejazz));
item.put("likeclassical", Boolean.toString(message.likeclassical));
item.put("likeopera", Boolean.toString(message.likeopera));
item.put("likerock", Boolean.toString(message.likerock));
item.put("likevegas", Boolean.toString(message.likevegas));
item.put("likebroadway", Boolean.toString(message.likebroadway));
item.put("likemusicals", Boolean.toString(message.likemusicals));
return item;
}
}