/* * Copyright 2000-2013 JetBrains s.r.o. * Copyright 2014-2014 AS3Boyan * Copyright 2014-2014 Elias Ku * * 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 org.jetbrains.jps.haxe.model.sdk; import com.intellij.plugins.haxe.HaxeCommonBundle; import com.intellij.plugins.haxe.config.sdk.HaxeSdkAdditionalDataBase; import com.intellij.plugins.haxe.config.sdk.impl.HaxeSdkAdditionalDataBaseImpl; import com.intellij.util.xmlb.XmlSerializer; import org.jdom.Element; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jps.haxe.model.sdk.impl.JpsHaxeSdkAdditionalDataImpl; import org.jetbrains.jps.model.library.sdk.JpsSdkType; import org.jetbrains.jps.model.serialization.library.JpsSdkPropertiesSerializer; /** * @author: Fedor.Korotkov */ public class JpsHaxeSdkType extends JpsSdkType<JpsHaxeSdkAdditionalData> { public static final JpsHaxeSdkType INSTANCE = new JpsHaxeSdkType(); public static JpsSdkPropertiesSerializer<JpsHaxeSdkAdditionalData> createJpsSdkPropertiesSerializer() { return new JpsSdkPropertiesSerializer<JpsHaxeSdkAdditionalData>(HaxeCommonBundle.message("haxe.sdk.name"), INSTANCE) { @NotNull public JpsHaxeSdkAdditionalData loadProperties(@Nullable final Element propertiesElement) { final HaxeSdkAdditionalDataBase sdkData = XmlSerializer.deserialize(propertiesElement, HaxeSdkAdditionalDataBaseImpl.class); return new JpsHaxeSdkAdditionalDataImpl(sdkData); } public void saveProperties(@NotNull final JpsHaxeSdkAdditionalData properties, @NotNull final Element element) { XmlSerializer.serializeInto(properties.getSdkData(), element); } }; } }