Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

import java.io.File;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.adapters.XmlAdapter;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;

public class Main {

    public static void main(String[] args) throws Exception {
        JAXBContext jc = JAXBContext.newInstance(Property.class);

        Unmarshaller unmarshaller = jc.createUnmarshaller();
        File xml = new File("input.xml");
        Property property = (Property) unmarshaller.unmarshal(xml);

        Marshaller marshaller = jc.createMarshaller();
        marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
        marshaller.marshal(property, System.out);
    }

    @XmlRootElement
    @XmlAccessorType(XmlAccessType.FIELD)
    public static class Property {

        @XmlJavaTypeAdapter(DoubleValueAdapter.class)
        private Double floorArea;

        public double getFloorArea() {
            return floorArea;
        }

        public void setFloorArea(double floorArea) {
            this.floorArea = floorArea;
        }

    }

    public static class DoubleValueAdapter extends XmlAdapter<DoubleValueAdapter.AdaptedDoubleValue, Double> {

        public static class AdaptedDoubleValue {
            public double value;
        }

        @Override
        public AdaptedDoubleValue marshal(Double value) throws Exception {
            AdaptedDoubleValue adaptedDoubleValue = new AdaptedDoubleValue();
            adaptedDoubleValue.value = value;
            return adaptedDoubleValue;
        }

        @Override
        public Double unmarshal(AdaptedDoubleValue adaptedDoubleValue) throws Exception {
            return adaptedDoubleValue.value;
        }
    }
}