package org.gnode.nix;

import org.bytedeco.javacpp.Loader;
import org.bytedeco.javacpp.Pointer;
import org.bytedeco.javacpp.annotation.Cast;
import org.bytedeco.javacpp.annotation.Namespace;
import org.bytedeco.javacpp.annotation.Platform;

@Platform(value = "linux",
        include = {"<nix/Dimensions.hpp>"},
        link = {"nix"})
@Namespace("nix")
public class SetDimension extends Pointer {
    static {
        Loader.load();
    }

    //--------------------------------------------------
    // Constructors
    //--------------------------------------------------

    /**
     * Constructor that creates an uninitialized SetDimension.
     * <p/>
     * Calling any method on an uninitialized dimension will throw a {@link java.lang.RuntimeException}.
     */
    public SetDimension() {
        allocate();
    }

    private native void allocate();

    //--------------------------------------------------
    // Base class methods
    //--------------------------------------------------

    private native
    @Cast("bool")
    boolean isNone();

    /**
     * Checks if dimension is initialized
     *
     * @return true if initialized else false
     */
    public boolean isInitialized() {
        return !isNone();
    }
}
@@ -129,20 +129,17 @@
 otation.
-Cast
+*
 ;%0Aimport
@@ -147,94 +147,31 @@
 org.
-bytedeco.javacpp.annotation.Namespace;%0Aimport org.bytedeco.javacpp.annotation.Platform
+gnode.nix.internal.None
 ;%0A%0A@
@@ -1137,24 +1137,24 @@
 ialized() %7B%0A
-
         retu
@@ -1172,10 +1172,1196 @@
 );%0A    %7D
+%0A%0A    //--------------------------------------------------%0A    // Methods concerning SetDimension%0A    //--------------------------------------------------%0A%0A    /**%0A     * The actual dimension that is described by the dimension descriptor.%0A     * %3Cp/%3E%0A     * The index of the dimension entity representing the dimension of the actual%0A     * data that is defined by this descriptor.%0A     *%0A     * @return The dimension index of the dimension.%0A     */%0A    public native%0A    @Name(%22index%22)%0A    @Cast(%22size_t%22)%0A    long getIndex();%0A%0A    /**%0A     * The type of the dimension.%0A     * %3Cp/%3E%0A     * This field indicates whether the dimension is a SampledDimension, SetDimension or%0A     * RangeDimension.%0A     *%0A     * @return The dimension type.%0A     */%0A    public native%0A    @Name(%22dimensionType%22)%0A    @ByVal%0A    @Cast(%22nix::DimensionType%22)%0A    int getDimensionType();%0A%0A    // public native @StdString @StdVector BytePointer labels();%0A%0A    // public native void labels(@StdString @StdVector BytePointer labels);%0A%0A    private native void labels(@Const @ByVal None t);%0A%0A    /**%0A     * Remove the labels from the dimension.%0A     */%0A    public void removeLabels() %7B%0A        labels(new None());%0A    %7D
 %0A%7D

add funcs for set dimension