class ProjectorSettings extends BaseSettings {

    public ProjectorSettings() {
        this(false);
    }
    public ProjectorSettings(boolean calibrated) {
        this.calibrated = calibrated;
    }

    boolean calibrated = false;

    public int getQuantity() {
        return size();
    }
    public void setQuantity(int quantity) {<FILL_FUNCTION_BODY>}

    @Override public ProjectorDevice.Settings[] toArray() {
        return (ProjectorDevice.Settings[])toArray(new ProjectorDevice.Settings[size()]);
    }
}

        Object[] a = toArray();
        int i = a.length;
        while (i > quantity) {
            remove(a[i-1]);
            i--;
        }
        while (i < quantity) {
            ProjectorDevice.Settings c = calibrated ? new ProjectorDevice.CalibratedSettings() :
                                                      new ProjectorDevice.CalibrationSettings();
            c.setName("Projector " + String.format("%2d", i));
            c.setScreenNumber(c.getScreenNumber()+i);
            add(c);
            for (PropertyChangeListener l : pcSupport.getPropertyChangeListeners()) {
                ((BaseChildSettings)c).addPropertyChangeListener(l);
            }
            i++;
        }
        pcSupport.firePropertyChange("quantity", a.length, quantity);
    
<methods>public non-sealed void <init>() ,public void addPropertyChangeListener(java.beans.PropertyChangeListener) ,public int compareTo(org.bytedeco.javacv.BaseSettings) ,public void removePropertyChangeListener(java.beans.PropertyChangeListener) ,public java.lang.Object[] toArray() ,public java.lang.Object[] toArray(java.lang.Object[]) <variables>