// Copyright 2004-2014 Jim Voris
//
// 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.qumasoft.guitools.qwin;
import com.qumasoft.qvcslib.AccessList;
import com.qumasoft.qvcslib.LabelInfo;
import com.qumasoft.qvcslib.LogfileInfo;
import com.qumasoft.qvcslib.MergedInfoInterface;
import java.util.Collections;
import java.util.Iterator;
import java.util.Map;
import java.util.TreeMap;
/**
* Label info content.
* @author Jim Voris
*/
public class LabelInfoContent {
private final Map<String, String> labelInfo;
/**
* Creates a new instance of RevisionInfoContent.
* @param mergedInfo the file to work on.
*/
public LabelInfoContent(MergedInfoInterface mergedInfo) {
this.labelInfo = Collections.synchronizedMap(new TreeMap<String, String>());
if (mergedInfo.getArchiveInfo() != null) {
addLabelInformation(mergedInfo);
}
}
private void addLabelInformation(MergedInfoInterface mergedInfo) {
LogfileInfo logfileInfo = mergedInfo.getLogfileInfo();
LabelInfo[] labelInfoArray = logfileInfo.getLogFileHeaderInfo().getLabelInfo();
int labelCount = 0;
if (labelInfoArray != null) {
labelCount = labelInfoArray.length;
}
AccessList accessList = new AccessList(logfileInfo.getLogFileHeaderInfo().getModifierList());
for (int i = 0; i < labelCount; i++) {
LabelInfo labelInfoElement = labelInfoArray[i];
if (!labelInfoElement.getIsObsolete()) {
String labelUserName = accessList.indexToUser(labelInfoElement.getCreatorIndex());
String mapKey = labelInfoElement.getSortableRevisionString() + Integer.toString(i);
labelInfo.put(mapKey, "Revision " + labelInfoElement.getLabelRevisionString() + " labeled by " + labelUserName + " as '"
+ labelInfoElement.getLabelString() + "'\n");
}
}
}
Iterator iterator() {
return labelInfo.values().iterator();
}
}