class RandomLayout extends AbstractLayout implements Layout {

    private final Random random;
    private Graph graph;
    private boolean converged;
    private double size;

    public RandomLayout(LayoutBuilder layoutBuilder, double size) {
        super(layoutBuilder);
        this.size = size;
        random = new Random();
    }

    @Override
    public void initAlgo() {
        converged = false;
    }

    @Override
    public void goAlgo() {
        graph = graphModel.getGraphVisible();
        graph.readLock();
        try {
            for (Node n : graph.getNodes()) {
                if (!n.isFixed()) {
                    n.setX((float) (-size / 2 + size * random.nextDouble()));
                    n.setY((float) (-size / 2 + size * random.nextDouble()));
                }
            }
            converged = true;
        } finally {
            graph.readUnlockAll();
        }
    }

    @Override
    public boolean canAlgo() {
        return !converged;
    }

    @Override
    public void endAlgo() {
        graph = null;
    }

    @Override
    public LayoutProperty[] getProperties() {<FILL_FUNCTION_BODY>}

    @Override
    public void resetPropertiesValues() {
    }

    public Double getSize() {
        return size;
    }

    public void setSize(Double size) {
        this.size = size;
    }
}

        List<LayoutProperty> properties = new ArrayList<>();
        try {
            properties.add(LayoutProperty.createProperty(
                this, Double.class,
                NbBundle.getMessage(getClass(), "Random.spaceSize.name"),
                null,
                "Random.spaceSize.name",
                NbBundle.getMessage(getClass(), "Random.spaceSize.desc"),
                "getSize", "setSize"));
        } catch (Exception e) {
            Exceptions.printStackTrace(e);
        }
        return properties.toArray(new LayoutProperty[0]);
    
<methods>public void <init>(org.gephi.layout.spi.LayoutBuilder) ,public boolean canAlgo() ,public static void ensureSafeLayoutNodePositions(GraphModel) ,public org.gephi.layout.spi.LayoutBuilder getBuilder() ,public boolean isConverged() ,public void setConverged(boolean) ,public void setGraphModel(GraphModel) <variables>private boolean converged,protected GraphModel graphModel,private final non-sealed org.gephi.layout.spi.LayoutBuilder layoutBuilder