# The Java Embedded Database Device Subclasses

The subclasses below define the specific type of Device instance.

### For an overview see page Java Database Class

### Class Definitions

        public static class PrivateMemoryDevice extends Device
        {
            public PrivateMemoryDevice(Kind kind, long size)
            {
                super(kind);
                this.size = size;
            }
            long  size;
            long  allocatedMemory;
        };

        public static class SharedMemoryDevice extends Device
        {
            public SharedMemoryDevice(Kind kind, String name, long hint, long size)
            {
                super(kind);
                this.name = name;
                this.hint = hint;
                this.size = size;
            }

            String name;
            long   hint;
            long   size;
        };

        public static class FileDevice extends Device
        {
            public FileDevice(Kind kind, String path)
            {
                super(kind);
                this.path = path;
            }

            public String path;
        };

        public static class MultiFileDevice extends FileDevice
        {
            public MultiFileDevice(Kind kind, String path, long size)
            {
                super(kind, path);
                this.size = size;
            }

            long   size;
        };

        public static class RaidDevice extends FileDevice
        {
            public RaidDevice(Kind kind, String path, int raidLevel)
            {
                super(kind, path);
                this.raidLevel = raidLevel;
            }

            int raidLevel;
        };

### Definitions:

`size` | The memory size in bytes of the memory block, or the multifile segment size for a MultiFileDevice (ignored for last segment)
`allocatedMemory` | A pointer to the allocated memory for a PrivateMemoryDevice
`hint` | The proposed region address for a SharedMemoryDevice
`path` | The file path for a FileDevice
raidLevel | The raid level for a RaidDevice: 0 - (RAID-0: striping) or 1 (RAID-1: mirroring)