// Path: src/test/java/com/_4dconcept/springframework/data/marklogic/core/mapping/namespaceaware/SuperType.java
// public class SuperType {
// 
//     private String id;
// 
//     /**
//      * @return the id
//      */
//     public String getId() {
//         return id;
//     }
// 
//     /**
//      * @param id the id to set
//      */
//     public void setId(String id) {
//         this.id = id;
//     }
// }


import static org.hamcrest.MatcherAssert.assertThat;
import com._4dconcept.springframework.data.marklogic.core.mapping.namespaceaware.SuperType;
import org.junit.Test;
import org.springframework.data.annotation.Id;
import org.springframework.data.mapping.model.Property;
import org.springframework.data.mapping.model.SimpleTypeHolder;
import org.springframework.data.util.ClassTypeInformation;
import org.springframework.util.ReflectionUtils;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
import javax.xml.namespace.QName;
import java.lang.reflect.Field;
import static org.hamcrest.CoreMatchers.is;
    }

    @Test
    public void resolveQName() {
        checkPropertyQName("id", "/super/type");
        checkPropertyQName("name", "/test/type");
        checkPropertyQName("sample", "/test/classtype");
        checkPropertyQName("surname", "/test/classtype");
    }

    class Person {
        @Id
        String id;

        String firstname;
        String lastname;
    }

    class Company {
        String id;
        String name;
    }

    class Identifier {
        @Id
        String uuid;
        String id;
    }

    @XmlTransient
// Path: src/test/java/com/_4dconcept/springframework/data/marklogic/core/mapping/namespaceaware/SuperType.java
// public class SuperType {
// 
//     private String id;
// 
//     /**
//      * @return the id
//      */
//     public String getId() {
//         return id;
//     }
// 
//     /**
//      * @param id the id to set
//      */
//     public void setId(String id) {
//         this.id = id;
//     }
// }


// Path: src/test/java/com/_4dconcept/springframework/data/marklogic/core/mapping/BasicMarklogicPersistentPropertyTest.java
import static org.hamcrest.MatcherAssert.assertThat;
import com._4dconcept.springframework.data.marklogic.core.mapping.namespaceaware.SuperType;
import org.junit.Test;
import org.springframework.data.annotation.Id;
import org.springframework.data.mapping.model.Property;
import org.springframework.data.mapping.model.SimpleTypeHolder;
import org.springframework.data.util.ClassTypeInformation;
import org.springframework.util.ReflectionUtils;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
import javax.xml.namespace.QName;
import java.lang.reflect.Field;
import static org.hamcrest.CoreMatchers.is;

    }

    @Test
    public void resolveQName() {
        checkPropertyQName("id", "/super/type");
        checkPropertyQName("name", "/test/type");
        checkPropertyQName("sample", "/test/classtype");
        checkPropertyQName("surname", "/test/classtype");
    }

    class Person {
        @Id
        String id;

        String firstname;
        String lastname;
    }

    class Company {
        String id;
        String name;
    }

    class Identifier {
        @Id
        String uuid;
        String id;
    }

    @XmlTransient
    class AbstractType extends SuperType {