// ============================================================================
//
// Copyright (C) 2006-2016 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package com.amalto.workbench.detailtabs.sections.model.annotationinfo.langinfo;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.eclipse.xsd.XSDComponent;
import com.amalto.workbench.detailtabs.sections.model.annotationinfo.AnnotaionInfo;
public abstract class LanguageInfoCollection extends AnnotaionInfo {
private List<LanguageInfo> languageInfos = new ArrayList<LanguageInfo>();
public LanguageInfoCollection(XSDComponent sourceXSDComponent, LanguageInfo[] initLanguageInfos) {
super(sourceXSDComponent);
for (LanguageInfo eachLangInfo : initLanguageInfos)
languageInfos.add(eachLangInfo);
}
public LanguageInfoCollection(XSDComponent sourceXSDComponent, Collection<LanguageInfo> initLanguageInfos) {
this(sourceXSDComponent, initLanguageInfos.toArray(new LanguageInfo[0]));
}
public LanguageInfo[] getLanguageInfos() {
return languageInfos.toArray(new LanguageInfo[0]);
}
public Map<String, LanguageInfo> getLangCode2LangInfo() {
Map<String, LanguageInfo> result = new HashMap<String, LanguageInfo>();
for (LanguageInfo eachLangInfo : getLanguageInfos()) {
result.put(eachLangInfo.getLanguageISOCode(), eachLangInfo);
}
return result;
}
public static LanguageInfoCollection createLabelInfoCollection(XSDComponent sourceXSDComponent,
LanguageInfo[] initLanguageInfos) {
return new LableInfoCollection(sourceXSDComponent, initLanguageInfos);
}
public static LanguageInfoCollection createLabelInfoCollection(XSDComponent sourceXSDComponent,
Collection<LanguageInfo> initLanguageInfos) {
return new LableInfoCollection(sourceXSDComponent, initLanguageInfos);
}
public static LanguageInfoCollection createDescriptionInfoCollection(XSDComponent sourceXSDComponent,
LanguageInfo[] initLanguageInfos) {
return new DescriptionInfoCollection(sourceXSDComponent, initLanguageInfos);
}
public static LanguageInfoCollection createDescriptionInfoCollection(XSDComponent sourceXSDComponent,
Collection<LanguageInfo> initLanguageInfos) {
return new DescriptionInfoCollection(sourceXSDComponent, initLanguageInfos);
}
public static LanguageInfoCollection createFacetMsgInfoCollection(XSDComponent sourceXSDComponent,
LanguageInfo[] initLanguageInfos) {
return new FacetMsgInfoCollection(sourceXSDComponent, initLanguageInfos);
}
public static LanguageInfoCollection createFacetMsgInfoCollection(XSDComponent sourceXSDComponent,
Collection<LanguageInfo> initLanguageInfos) {
return new FacetMsgInfoCollection(sourceXSDComponent, initLanguageInfos);
}
public static LanguageInfoCollection createDisplayFormatInfoCollection(XSDComponent sourceXSDComponent,
LanguageInfo[] initLanguageInfos) {
return new DisplayFormatInfoCollection(sourceXSDComponent, initLanguageInfos);
}
public static LanguageInfoCollection createDisplayFormatInfoCollection(XSDComponent sourceXSDComponent,
Collection<LanguageInfo> initLanguageInfos) {
return new DisplayFormatInfoCollection(sourceXSDComponent, initLanguageInfos);
}
}