package com.intellij.flex.model.lib;
import org.jdom.Element;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jps.model.JpsElementFactory;
import org.jetbrains.jps.model.JpsSimpleElement;
import org.jetbrains.jps.model.ex.JpsElementTypeBase;
import org.jetbrains.jps.model.library.JpsLibraryType;
import org.jetbrains.jps.model.serialization.library.JpsLibraryPropertiesSerializer;
public class JpsFlexLibraryType extends JpsElementTypeBase<JpsSimpleElement<JpsFlexLibraryProperties>> implements JpsLibraryType<JpsSimpleElement<JpsFlexLibraryProperties>> {
public static final JpsFlexLibraryType INSTANCE = new JpsFlexLibraryType();
private static final String ID = "flex";
private static final String ID_ATTR = "id";
public static JpsLibraryPropertiesSerializer<JpsSimpleElement<JpsFlexLibraryProperties>> createLibraryPropertiesSerializer() {
return new JpsLibraryPropertiesSerializer<JpsSimpleElement<JpsFlexLibraryProperties>>(INSTANCE, ID) {
public JpsSimpleElement<JpsFlexLibraryProperties> loadProperties(@Nullable final Element propertiesElement) {
final String libraryId = propertiesElement == null ? null : propertiesElement.getAttributeValue(ID_ATTR);
return JpsElementFactory.getInstance().createSimpleElement(new JpsFlexLibraryProperties(libraryId));
}
public void saveProperties(final JpsSimpleElement<JpsFlexLibraryProperties> propertiesElement, final Element element) {
final String libraryId = propertiesElement.getData().getLibraryId();
if (libraryId != null) {
element.setAttribute(ID_ATTR, libraryId);
}
}
};
}
}