001
014
015 package com.liferay.portal.search.lucene.dump;
016
017 import com.liferay.portal.kernel.util.StringBundler;
018 import com.liferay.portal.kernel.util.StringPool;
019
020 import java.io.IOException;
021 import java.io.Serializable;
022
023 import java.util.ArrayList;
024 import java.util.List;
025
026 import org.apache.lucene.index.IndexCommit;
027 import org.apache.lucene.store.Directory;
028
029
032 public class IndexCommitMetaInfo implements Serializable {
033
034 public IndexCommitMetaInfo(IndexCommit indexCommit) throws IOException {
035 if (indexCommit == null) {
036 _empty = true;
037
038 return;
039 }
040
041 List<String> fileNames = new ArrayList<String>(
042 indexCommit.getFileNames());
043
044 _segments = new ArrayList<Segment>(fileNames.size());
045
046 Directory directory = indexCommit.getDirectory();
047
048 for (String fileName : fileNames) {
049 Segment segment = new Segment(
050 fileName, directory.fileLength(fileName));
051
052 _segments.add(segment);
053 }
054
055 _generation = indexCommit.getGeneration();
056 }
057
058 public long getGeneration() {
059 return _generation;
060 }
061
062 public List<Segment> getSegments() {
063 return _segments;
064 }
065
066 public boolean isEmpty() {
067 return _empty;
068 }
069
070 @Override
071 public String toString() {
072 if (_empty) {
073 return StringPool.BLANK;
074 }
075
076 StringBundler sb = new StringBundler(_segments.size() * 5 + 3);
077
078 sb.append("{fileInfos[");
079
080 for (int i = 0; i < _segments.size(); i++) {
081 Segment fileInfo = _segments.get(i);
082
083 sb.append("fileName=");
084 sb.append(fileInfo._fileName);
085 sb.append(", fileSize=");
086 sb.append(fileInfo._fileSize);
087
088 if ((i + 1) < _segments.size()) {
089 sb.append(", ");
090 }
091 }
092
093 sb.append("], generation=");
094 sb.append(_generation);
095 sb.append("}");
096
097 return sb.toString();
098 }
099
100 public class Segment implements Serializable {
101
102 public Segment(String fileName, long fileSize) {
103 _fileName = fileName;
104 _fileSize = fileSize;
105 }
106
107 public String getFileName() {
108 return _fileName;
109 }
110
111 public long getFileSize() {
112 return _fileSize;
113 }
114
115 @Override
116 public String toString() {
117 StringBundler sb = new StringBundler(5);
118
119 sb.append("{_fileName=");
120 sb.append(_fileName);
121 sb.append(", _fileSize=");
122 sb.append(_fileSize);
123 sb.append("}");
124
125 return sb.toString();
126 }
127
128 private String _fileName;
129 private long _fileSize;
130
131 }
132
133 private boolean _empty;
134 private long _generation;
135 private List<Segment> _segments;
136
137 }