Skip to content

Commit

Permalink
Merge pull request #312 from cbosdo/parametrized-type
Browse files Browse the repository at this point in the history
Replace the use of Gson's internal newParametrizedTypeWithOwner
  • Loading branch information
lucidd authored Mar 28, 2024
2 parents d3b19b2 + 7ce3b73 commit dbccfe1
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 6 deletions.
8 changes: 2 additions & 6 deletions src/main/java/com/suse/salt/netapi/utils/ClientUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@
import java.lang.reflect.Type;
import java.util.Scanner;

import static com.google.gson.internal.$Gson$Types.newParameterizedTypeWithOwner;

import com.suse.salt.netapi.client.SaltClient;

/**
Expand Down Expand Up @@ -61,11 +59,9 @@ public static String streamToString(InputStream inputStream) {
* @param rawType the raw type
* @param typeArguments the type arguments
* @return the parameterized type object
* @see com.google.gson.internal.$Gson$Types#newParameterizedTypeWithOwner
*/
public static ParameterizedType parameterizedType(Type ownerType, Type rawType,
Type... typeArguments) {
return newParameterizedTypeWithOwner(ownerType, rawType, typeArguments);
public static ParameterizedType parameterizedType(Type ownerType, Type rawType, Type... typeArguments) {
return new ParameterizedTypeImpl(ownerType, rawType, typeArguments);
}

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
package com.suse.salt.netapi.utils;

import java.lang.reflect.Type;

/** Implementation of Java's ParametrizedType for internal use */
public class ParameterizedTypeImpl implements java.lang.reflect.ParameterizedType {

private final Type owner;
private final Type raw;
private final Type[] argumentsTypes;

/**
* Construct a parametrized type
*
* @param ownerIn the ownerIn type
* @param rawTypeIn the raw type
* @param argumentsTypesIn the arguments actual types
*/
public ParameterizedTypeImpl(Type ownerIn, Type rawTypeIn, Type[] argumentsTypesIn) {
owner = ownerIn;
raw = rawTypeIn;
argumentsTypes = argumentsTypesIn;
}

/**
* Construct a parametrized type for a single argument
*
* @param ownerIn the ownerIn type
* @param rawTypeIn the raw type
* @param argumentTypeIn the argument actual types
*/
public ParameterizedTypeImpl(Type ownerIn, Type rawTypeIn, Type argumentTypeIn) {
this(ownerIn, rawTypeIn, new Type[]{argumentTypeIn});
}

@Override
public Type[] getActualTypeArguments() {
return argumentsTypes;
}

@Override
public Type getRawType() {
return raw;
}

@Override
public Type getOwnerType() {
return owner;
}
}

0 comments on commit dbccfe1

Please sign in to comment.