All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.eclipse.mat.hprof.ArrayDescription Maven / Gradle / Ivy

There is a newer version: 2.1
Show newest version
/**
 * ****************************************************************************
 * Copyright (c) 2008 SAP AG.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 * SAP AG - initial API and implementation
 * *****************************************************************************
 */
package org.eclipse.mat.hprof;

import java.lang.ref.SoftReference;

/* package */class ArrayDescription {
  /* package */static class Offline extends ArrayDescription {
    boolean isPrimitive;
    long position;
    int arraySize;
    int elementSize;

    SoftReference lazyReadContent = new SoftReference(null);

    public Offline(boolean isPrimitive, long position, int elementSize, int arraySize) {
      this.isPrimitive = isPrimitive;
      this.position = position;
      this.elementSize = elementSize;
      this.arraySize = arraySize;
    }

    public boolean isPrimitive() {
      return isPrimitive;
    }

    public long getPosition() {
      return position;
    }

    public int getArraySize() {
      return arraySize;
    }

    public int getElementSize() {
      return elementSize;
    }

    public Object getLazyReadContent() {
      return lazyReadContent.get();
    }

    public void setLazyReadContent(Object content) {
      this.lazyReadContent = new SoftReference(content);
    }
  }

  /* package */static class Raw extends ArrayDescription {
    byte[] content;

    public Raw(byte[] content) {
      this.content = content;
    }

    public byte[] getContent() {
      return content;
    }
  }
}