package com.example.model;

import com.force.api.DescribeSObject;

import java.util.Iterator;

/**
 * @author Ryan Brainard
 */
abstract class RichSObjectWrapper implements RichSObject {

    public final RichSObject wrapped;

    public RichSObjectWrapper(RichSObject wrapped) {
        this.wrapped = wrapped;
    }
    
    @Override
    public DescribeSObject getMetadata() {
        return wrapped.getMetadata();
    }

    @Override
    public RichField get(String fieldName) {
        return wrapped.get(fieldName);
    }

    @Override
    public Iterator<RichField> getFields() {
        return wrapped.getFields();
    }

    @Override
    public Iterator<RichField> iterator() {
        return wrapped.getFields();
    }
}

@@ -121,16 +121,23 @@
 ard%0A */%0A
+public 
 abstract
@@ -193,21 +193,24 @@
 %7B%0A%0A    p
-ublic
+rotected
  final R

make RichSObjectWrapper public