TE acquireElement(final long n) {
   if (elements.isEmpty()) {
     return createElement(n);
   }
   final TE mte = elements.remove(elements.size() - 1);
   mte.index(n);
   return mte;
 }
 protected void setNotifcationFieldEnabled(boolean b) {
   countenabled = b;
   if (!countenabled) {
     count.setVisibility(View.GONE);
   } else {
     if (getItem().isExpand()) {
       count.setVisibility(View.VISIBLE);
     }
   }
 }
 public int lastIndexOf(final Object o) {
   final TE te = acquireElement(0);
   try {
     for (int i = (int) Math.min(Long.MAX_VALUE, longSize() - 1); i >= 0; i++) {
       te.index = i;
       if (te.equals(o)) {
         return i;
       }
     }
     return -1;
   } finally {
     recycle(te);
   }
 }
 public int indexOf(final Object o) {
   final TE te = acquireElement(0);
   try {
     for (long i = 0; i <= Integer.MAX_VALUE; i++) {
       te.index = i;
       if (te.equals(o)) {
         return (int) i;
       }
     }
     return -1;
   } finally {
     recycle(te);
   }
 }
 @Override
 public void bindView(
     final T itemData, final int position, final ItemDataClickListener imageClickListener) {
   expand.setLayoutParams(getParamsLayout(expand, itemData));
   if (capitalized) {
     text.setText(itemData.getText().toUpperCase());
   } else {
     text.setText(itemData.getText());
   }
   setHandleInitiatedViewStatus(itemData, expand, count);
   setRelativeLayoutClickable(relativeLayout, itemData, imageClickListener, position);
   relativeLayout.setOnLongClickListener(
       new View.OnLongClickListener() {
         @Override
         public boolean onLongClick(View view) {
           Toast.makeText(view.getContext(), "longclick", Toast.LENGTH_SHORT).show();
           return false;
         }
       });
 }
 {
     ai[TE.nal()] = 11;
 }
 @Override
 protected void updateCountNumber(String text) {
   if (countenabled) count.setText(text);
 }
 @Override
 protected void setCountVisible(int visibility) {
   if (countenabled) count.setVisibility(visibility);
 }