code: @SuppressWarnings("unchecked")
      protected StorableProperty<S>[] gatherAllProperties() {
          Map<String, ? extends StorableProperty<S>> map =
              StorableIntrospector.examine(mType).getAllProperties();
  
          List<StorableProperty<S>> list = new ArrayList<StorableProperty<S>>(map.size());
  
          for (StorableProperty<S> property : map.values()) {
              if (!property.isJoin() && !property.isDerived()) {
                  list.add(property);
              }
          }
  
          return list.toArray(new StorableProperty[list.size()]);
      }
docs: Returns all non-join, non-derived properties for storable.