mirror of https://github.com/apache/lucene.git
LUCENE-4664: Make oal.codec.compressing.{C,Dec}ompressor public.
git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/trunk@1430177 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
6c46432df3
commit
f90ca1f942
|
@ -24,7 +24,10 @@ import org.apache.lucene.store.DataOutput;
|
||||||
/**
|
/**
|
||||||
* A data compressor.
|
* A data compressor.
|
||||||
*/
|
*/
|
||||||
abstract class Compressor {
|
public abstract class Compressor {
|
||||||
|
|
||||||
|
/** Sole constructor, typically called from sub-classes. */
|
||||||
|
protected Compressor() {}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Compress bytes into <code>out</code>. It it the responsibility of the
|
* Compress bytes into <code>out</code>. It it the responsibility of the
|
||||||
|
|
|
@ -24,9 +24,12 @@ import org.apache.lucene.store.DataOutput;
|
||||||
import org.apache.lucene.util.BytesRef;
|
import org.apache.lucene.util.BytesRef;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An decompressor.
|
* A decompressor.
|
||||||
*/
|
*/
|
||||||
abstract class Decompressor implements Cloneable {
|
public abstract class Decompressor implements Cloneable {
|
||||||
|
|
||||||
|
/** Sole constructor, typically called from sub-classes. */
|
||||||
|
protected Decompressor() {}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Decompress bytes that were stored between offsets <code>offset</code> and
|
* Decompress bytes that were stored between offsets <code>offset</code> and
|
||||||
|
|
|
@ -21,6 +21,7 @@ import java.util.Random;
|
||||||
|
|
||||||
import org.apache.lucene.codecs.FilterCodec;
|
import org.apache.lucene.codecs.FilterCodec;
|
||||||
import org.apache.lucene.codecs.StoredFieldsFormat;
|
import org.apache.lucene.codecs.StoredFieldsFormat;
|
||||||
|
import org.apache.lucene.codecs.compressing.dummy.DummyCompressingCodec;
|
||||||
import org.apache.lucene.codecs.lucene41.Lucene41Codec;
|
import org.apache.lucene.codecs.lucene41.Lucene41Codec;
|
||||||
|
|
||||||
import com.carrotsearch.randomizedtesting.generators.RandomInts;
|
import com.carrotsearch.randomizedtesting.generators.RandomInts;
|
||||||
|
|
|
@ -0,0 +1,102 @@
|
||||||
|
package org.apache.lucene.codecs.compressing.dummy;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
import org.apache.lucene.codecs.compressing.CompressingCodec;
|
||||||
|
import org.apache.lucene.codecs.compressing.CompressionMode;
|
||||||
|
import org.apache.lucene.codecs.compressing.Compressor;
|
||||||
|
import org.apache.lucene.codecs.compressing.Decompressor;
|
||||||
|
import org.apache.lucene.store.DataInput;
|
||||||
|
import org.apache.lucene.store.DataOutput;
|
||||||
|
import org.apache.lucene.util.ArrayUtil;
|
||||||
|
import org.apache.lucene.util.BytesRef;
|
||||||
|
|
||||||
|
/** CompressionCodec that does not compress data, useful for testing. */
|
||||||
|
// In its own package to make sure the oal.codecs.compressing classes are
|
||||||
|
// visible enough to let people write their own CompressionMode
|
||||||
|
public class DummyCompressingCodec extends CompressingCodec {
|
||||||
|
|
||||||
|
public static final CompressionMode DUMMY = new CompressionMode() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Compressor newCompressor() {
|
||||||
|
return DUMMY_COMPRESSOR;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Decompressor newDecompressor() {
|
||||||
|
return DUMMY_DECOMPRESSOR;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "DUMMY";
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
private static final Decompressor DUMMY_DECOMPRESSOR = new Decompressor() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void decompress(DataInput in, int originalLength,
|
||||||
|
int offset, int length, BytesRef bytes) throws IOException {
|
||||||
|
assert offset + length <= originalLength;
|
||||||
|
if (bytes.bytes.length < originalLength) {
|
||||||
|
bytes.bytes = new byte[ArrayUtil.oversize(originalLength, 1)];
|
||||||
|
}
|
||||||
|
in.readBytes(bytes.bytes, 0, offset + length);
|
||||||
|
bytes.offset = offset;
|
||||||
|
bytes.length = length;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void copyCompressedData(DataInput in, int originalLength, DataOutput out) throws IOException {
|
||||||
|
out.copyBytes(in, originalLength);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Decompressor clone() {
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
private static final Compressor DUMMY_COMPRESSOR = new Compressor() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void compress(byte[] bytes, int off, int len, DataOutput out) throws IOException {
|
||||||
|
out.writeBytes(bytes, off, len);
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
/** Constructor that allows to configure the chunk size. */
|
||||||
|
public DummyCompressingCodec(int chunkSize, boolean withSegmentSuffix) {
|
||||||
|
super("DummyCompressingStoredFields",
|
||||||
|
withSegmentSuffix ? "DummyCompressingStoredFields" : "",
|
||||||
|
DUMMY, chunkSize);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Default constructor. */
|
||||||
|
public DummyCompressingCodec() {
|
||||||
|
this(1 << 14, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,25 @@
|
||||||
|
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
||||||
|
<!--
|
||||||
|
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.
|
||||||
|
-->
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
Dummy CompressingCodec implementation used for testing.
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -17,4 +17,4 @@ org.apache.lucene.codecs.asserting.AssertingCodec
|
||||||
org.apache.lucene.codecs.compressing.FastCompressingCodec
|
org.apache.lucene.codecs.compressing.FastCompressingCodec
|
||||||
org.apache.lucene.codecs.compressing.FastDecompressionCompressingCodec
|
org.apache.lucene.codecs.compressing.FastDecompressionCompressingCodec
|
||||||
org.apache.lucene.codecs.compressing.HighCompressionCompressingCodec
|
org.apache.lucene.codecs.compressing.HighCompressionCompressingCodec
|
||||||
org.apache.lucene.codecs.compressing.DummyCompressingCodec
|
org.apache.lucene.codecs.compressing.dummy.DummyCompressingCodec
|
||||||
|
|
Loading…
Reference in New Issue