com.ricemap.spateDB.mapred.RTreeGridOutputFormat.java Source code

Java tutorial

Introduction

Here is the source code for com.ricemap.spateDB.mapred.RTreeGridOutputFormat.java

Source

/*
 * 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 com.ricemap.spateDB.mapred;

import java.io.IOException;

import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.mapred.FileOutputFormat;
import org.apache.hadoop.mapred.JobConf;
import org.apache.hadoop.mapred.RecordWriter;
import org.apache.hadoop.util.Progressable;

import com.ricemap.spateDB.core.CellInfo;
import com.ricemap.spateDB.core.SpatialSite;
import com.ricemap.spateDB.shape.Shape;

public class RTreeGridOutputFormat<S extends Shape> extends FileOutputFormat<IntWritable, S> {

    @Override
    public RecordWriter<IntWritable, S> getRecordWriter(FileSystem ignored, JobConf job, String name,
            Progressable progress) throws IOException {
        // Get grid info
        CellInfo[] cellsInfo = SpatialSite.getCells(job);
        boolean pack = job.getBoolean(SpatialSite.PACK_CELLS, false);
        boolean expand = job.getBoolean(SpatialSite.EXPAND_CELLS, false);
        RTreeGridRecordWriter<S> writer = new RTreeGridRecordWriter<S>(job, name, cellsInfo, pack, expand);
        writer.setStockObject((S) SpatialSite.createStockShape(job));
        return writer;
    }

}