Skip to content

Commit 5cfe684

Browse files
committed
Cooper: Implement java.util.Map for 1[T:U]1 (done), implement java.util.List for [T] (wip)
1 parent 670ff64 commit 5cfe684

File tree

5 files changed

+195
-3
lines changed

5 files changed

+195
-3
lines changed

Source/Array.Java.swift

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
#if JAVA
2+
public extension Swift.Array /*: java.util.List<T>*/ {
3+
public func size() -> Int32 {
4+
return count
5+
}
6+
public func isEmpty() -> Bool {
7+
return isEmpty
8+
}
9+
public func contains(_ arg1: Object!) -> Bool {
10+
return list.contains(arg1)
11+
}
12+
public func toArray<T>(_ arg1: T![]) -> T![] {
13+
return list.toArray<T>(arg1)
14+
}
15+
public func toArray() -> Object![] {
16+
return list.toArray()
17+
}
18+
mutating func add(_ arg1: Int32, _ arg2: T!) {
19+
makeUnique()
20+
list.add(arg1, arg2)
21+
}
22+
public mutating func add(_ arg1: T!) -> Bool {
23+
makeUnique()
24+
return list.add(arg1)
25+
}
26+
public mutating func remove(_ arg1: Int32) -> T! {
27+
makeUnique()
28+
return list.remove(arg1)
29+
}
30+
public mutating func remove(_ arg1: Object!) -> Bool {
31+
makeUnique()
32+
return list.remove(arg1)
33+
}
34+
public func containsAll(_ arg1: Collection<T>!) -> Bool {
35+
return list.containsAll(arg1)
36+
}
37+
//public mutating func addAll(_ arg1: Int32, _ arg2: Collection</*? extends T*/Object>!) -> Bool {
38+
//makeUnique()
39+
//return list.addAll(arg1, arg2)
40+
//}
41+
//public mutating func addAll(_ arg1: Collection</*? extends T*/Object>!) -> Bool {
42+
//makeUnique()
43+
//return list.addAll(arg1)
44+
//}
45+
public mutating func removeAll(_ arg1: Collection</*?*/Object>!) -> Bool {
46+
makeUnique()
47+
return list.removeAll(arg1)
48+
}
49+
public mutating func retainAll(_ arg1: Collection</*?*/Object>!) -> Bool {
50+
makeUnique()
51+
return list.retainAll(arg1)
52+
}
53+
public mutating func replaceAll(_ arg1: java.util.function.UnaryOperator<T>!) {
54+
makeUnique()
55+
list.replaceAll(arg1)
56+
}
57+
public mutating func sort(_ arg1: Comparator</*? super T*/Object>!) {
58+
makeUnique()
59+
list.sort(arg1)
60+
}
61+
public mutating func clear() {
62+
removeAll()
63+
}
64+
public override func equals(_ arg1: Object!) -> Bool {
65+
if let a = arg1 as? [T] {
66+
return a == self
67+
}
68+
return false
69+
}
70+
public override func hashCode() -> Int32 {
71+
return list.hashCode()
72+
}
73+
public func indexOf(_ arg1: Object!) -> Int32 {
74+
return list.indexOf(arg1)
75+
}
76+
public func lastIndexOf(_ arg1: Object!) -> Int32 {
77+
return list.lastIndexOf(arg1)
78+
}
79+
public func listIterator(_ arg1: Int32) -> ListIterator<T>! {
80+
return platformList.listIterator(arg1)
81+
}
82+
public func listIterator() -> ListIterator<T>! {
83+
return platformList.listIterator()
84+
}
85+
public func subList(_ arg1: Int32, _ arg2: Int32) -> java.util.List<T>! {
86+
return self[arg1...arg2]
87+
}
88+
public func spliterator() -> Spliterator<T>! {
89+
return platformList.spliterator()
90+
}
91+
public func `get`(_ arg1: Int32) -> T {
92+
return self[arg1]
93+
}
94+
public mutating func `set`(_ arg1: Int32, _ value: T!) -> T {
95+
let old = self[arg1]
96+
self[arg1] = value
97+
return old
98+
}
99+
}
100+
#endif

Source/Array.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ public struct Array<T>
169169
// Storage
170170
//
171171

172-
fileprivate var list: PlatformList<T>
172+
private var list: PlatformList<T>
173173
private var unique: Boolean = true
174174

175175
private mutating func makeUnique()

Source/Dictionary.Java.swift

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
#if JAVA
2+
public extension Swift.Dictionary : java.util.Map<Key,Value> {
3+
4+
public func size() -> Int32 {
5+
return dictionary.size()
6+
}
7+
public func isEmpty() -> Bool {
8+
return dictionary.isEmpty()
9+
}
10+
public func containsKey(_ arg1: Object!) -> Bool {
11+
return dictionary.containsKey(arg1)
12+
}
13+
public func containsValue(_ arg1: Object!) -> Bool {
14+
return dictionary.containsValue(arg1)
15+
}
16+
public func `get`(_ arg1: Object!) -> Value! {
17+
return dictionary.`get`(arg1)
18+
}
19+
public mutating func put(_ arg1: Key!, _ arg2: Value!) -> Value! {
20+
makeUnique()
21+
return dictionary.put(arg1, arg1)
22+
}
23+
public mutating func remove(_ arg1: Object!, _ arg2: Object!) -> Bool {
24+
makeUnique()
25+
return dictionary.remove(arg1, arg1)
26+
}
27+
public mutating func remove(_ arg1: Object!) -> Value! {
28+
makeUnique()
29+
return dictionary.remove(arg1)
30+
}
31+
public mutating func putAll(_ arg1: Map</*? extends Key,? extends Value*/Key,Value>!) {
32+
makeUnique()
33+
dictionary.putAll(arg1)
34+
}
35+
public mutating func clear() {
36+
makeUnique()
37+
dictionary.clear()
38+
}
39+
public func keySet() -> java.util.Set<Key>! {
40+
return platformDictionary.keySet()
41+
}
42+
public func values() -> Collection<Value>! {
43+
return platformDictionary.values()
44+
}
45+
public func entrySet() -> java.util.Set<Map.Entry<Key,Value>!>! {
46+
return platformDictionary.entrySet()
47+
}
48+
public override func equals(_ arg1: Object!) -> Bool {
49+
return dictionary.equals(arg1)
50+
}
51+
public override func hashCode() -> Int32 {
52+
return dictionary.hashCode()
53+
}
54+
public func getOrDefault(_ arg1: Object!, _ arg2: Value!) -> Value! {
55+
return dictionary.getOrDefault(arg1, arg2)
56+
}
57+
public func forEach(_ arg1: java.util.function.BiConsumer</*? super Key,? super Value*/Key,Value>!) {
58+
dictionary.forEach(arg1)
59+
}
60+
public mutating func replaceAll(_ arg1: java.util.function.Bifunction</*? super Key,? super Value,? extends Value*/Key,Value>!) {
61+
makeUnique()
62+
dictionary.replaceAll(arg1)
63+
}
64+
public mutating func putIfAbsent(_ arg1: Key!, _ arg2: Value!) -> Value! {
65+
makeUnique()
66+
return dictionary.putIfAbsent(arg1, arg2)
67+
}
68+
public mutating func replace(_ arg1: Key!, _ arg2: Value!) -> Value! {
69+
makeUnique()
70+
return dictionary.replace(arg1, arg2)
71+
}
72+
public mutating func replace(_ arg1: Key!, _ arg2: Value!, _ arg3: Value!) -> Bool {
73+
makeUnique()
74+
return dictionary.replace(arg1, arg2, arg3)
75+
}
76+
public func computeIfAbsent(_ arg1: Key!, _ arg2: java.util.function.function</*? super Key,? extends Value*/Key,Value>!) -> Value! {
77+
return dictionary.computeIfAbsent(arg1, arg2)
78+
}
79+
public func computeIfPresent(_ arg1: Key!, _ arg2: java.util.function.Bifunction</*? super Key,? super Value,? extends Value*/Key,Value>!) -> Value! {
80+
return dictionary.computeIfPresent(arg1, arg2)
81+
}
82+
public func compute(_ arg1: Key!, _ arg2: java.util.function.Bifunction</*? super Key,? super Value,? extends Value*/Key,Value>!) -> Value! {
83+
return dictionary.compute(arg1, arg2)
84+
}
85+
public mutating func merge(_ arg1: Key!, _ arg2: Value!, _ arg3: java.util.function.Bifunction</*? super Value,? super Value,? extends Value*/Key,Value>!) -> Value! {
86+
makeUnique()
87+
return dictionary.merge(arg1, arg2, arg3)
88+
}
89+
}
90+
#endif

Source/Dictionary.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ public struct Dictionary<Key, Value> /*: INSFastEnumeration<T>*/
7979
// Storage
8080
//
8181

82-
fileprivate var dictionary: PlatformDictionary<Key,Value>
82+
private var dictionary: PlatformDictionary<Key,Value>
8383
private var unique: Boolean = true
8484

8585
private mutating func makeUnique()
@@ -375,7 +375,7 @@ public extension Swift.Dictionary : ISequence<(Key,Value)> {
375375
#endif
376376

377377
#if ISLAND
378-
378+
379379
@Implements(typeOf(IEnumerable), "GetEnumerator")
380380
func GetEnumeratorNG() -> IEnumerator! {
381381
for entry in dictionary {

Source/Swift.Shared.projitems

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,8 @@
8888
<Compile Include="$(MSBuildThisFileDirectory)Number_Constructors.swift">
8989
<VirtualFolder>Numbers and such</VirtualFolder>
9090
</Compile>
91+
<Compile Include="$(MSBuildThisFileDirectory)Array.Java.swift" />
92+
<Compile Include="$(MSBuildThisFileDirectory)Dictionary.Java.swift" />
9193
</ItemGroup>
9294
<ItemGroup>
9395
<Folder Include="Sequences">

0 commit comments

Comments
 (0)