/*
* Copyright (C) 2014 Indeed Inc.
*
* Licensed 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.indeed.flamdex.reader;
import com.google.common.base.Charsets;
import com.google.common.io.Files;
import com.indeed.imhotep.io.caching.CachedFile;
import org.yaml.snakeyaml.JavaBeanDumper;
import org.yaml.snakeyaml.JavaBeanLoader;
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.concurrent.ExecutionException;
/**
* @author jplaisance
*/
public class FlamdexMetadata {
public int numDocs;
public List<String> intFields;
public List<String> stringFields;
public int formatVersion;
public FlamdexMetadata() {
}
public FlamdexMetadata(int numDocs, List<String> intFields, List<String> stringFields, int formatVersion) {
this.numDocs = numDocs;
this.intFields = intFields;
this.stringFields = stringFields;
this.formatVersion = formatVersion;
}
public int getNumDocs() {
return numDocs;
}
public void setNumDocs(final int numDocs) {
this.numDocs = numDocs;
}
public List<String> getIntFields() {
return intFields;
}
public void setIntFields(final List<String> intFields) {
this.intFields = intFields;
}
public List<String> getStringFields() {
return stringFields;
}
public void setStringFields(final List<String> stringFields) {
this.stringFields = stringFields;
}
public int getFormatVersion() {
return formatVersion;
}
public void setFormatVersion(final int formatVersion) {
this.formatVersion = formatVersion;
}
public static FlamdexMetadata readMetadata(final String directory) throws IOException {
JavaBeanLoader<FlamdexMetadata> loader = new JavaBeanLoader<FlamdexMetadata>(FlamdexMetadata.class);
File metadataFile;
metadataFile = CachedFile.create(CachedFile.buildPath(directory, "metadata.txt")).loadFile();
String metadata = Files.toString(metadataFile, Charsets.UTF_8);
return loader.load(metadata);
}
public static void writeMetadata(final String directory, FlamdexMetadata metadata) throws IOException {
JavaBeanDumper dumper = new JavaBeanDumper(false);
Files.write(dumper.dump(metadata).getBytes(Charsets.UTF_8), new File(directory, "metadata.txt"));
}
}