Package com.epsilon5.client.modules

Source Code of com.epsilon5.client.modules.DescriptionModule

package com.epsilon5.client.modules;

import com.google.inject.Binder;
import com.google.inject.Module;
import com.epsilon5.client.settings.NetworkSettings;
import com.epsilon5.client.settings.PlayerSettings;
import com.epsilon5.client.settings.Settings;
import com.epsilon5.client.settings.WindowSettings;
import com.epsilon5.client.world.Sprites;
import com.epsilon5.client.world.World;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
import java.io.File;

class DescriptionModule implements Module {

    @Override
    public void configure(Binder binder) {
        try {
            final JAXBContext context = JAXBContext.newInstance(Settings.class, World.class);
            final Unmarshaller um = context.createUnmarshaller();

            final Settings settings = (Settings) um.unmarshal(new File("description/settings.xml"));
            binder.bind(WindowSettings.class).toInstance(settings.getWindow());
            binder.bind(NetworkSettings.class).toInstance(settings.getNetwork());
            binder.bind(PlayerSettings.class).toInstance(settings.getPlayer());

            final World world = (World) um.unmarshal(new File("description/world.xml"));
            binder.bind(Sprites.class).toInstance(world.getSprites());

        } catch (JAXBException e) {
            binder.addError(e);
        }
    }

}
TOP

Related Classes of com.epsilon5.client.modules.DescriptionModule

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.