Package jadx.tests.integration.generics

Source Code of jadx.tests.integration.generics.TestGenerics2$TestCls$ItemReference

package jadx.tests.integration.generics;

import jadx.core.dex.nodes.ClassNode;
import jadx.tests.api.IntegrationTest;

import java.lang.ref.ReferenceQueue;
import java.lang.ref.WeakReference;
import java.util.Map;

import org.junit.Test;

import static org.hamcrest.CoreMatchers.containsString;
import static org.junit.Assert.assertThat;

public class TestGenerics2 extends IntegrationTest {

  public static class TestCls {
    private static class ItemReference<V> extends WeakReference<V> {
      private Object id;

      public ItemReference(V item, Object id, ReferenceQueue<? super V> queue) {
        super(item, queue);
        this.id = id;
      }
    }

    public static class ItemReferences<V> {
      private Map<Object, ItemReference<V>> items;

      public V get(Object id) {
        WeakReference<V> ref = this.items.get(id);
        return (ref != null) ? ref.get() : null;
      }
    }
  }

  @Test
  public void test() {
    ClassNode cls = getClassNode(TestCls.class);
    String code = cls.getCode().toString();

    assertThat(code, containsString("public ItemReference(V item, Object id, ReferenceQueue<? super V> queue) {"));
    assertThat(code, containsString("public V get(Object id) {"));
    assertThat(code, containsString("WeakReference<V> ref = "));
    assertThat(code, containsString("return ref != null ? ref.get() : null;"));
  }
}
TOP

Related Classes of jadx.tests.integration.generics.TestGenerics2$TestCls$ItemReference

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.